# NUMERICAL METHODS FOR PREDICTING

ROLL PRESS POWDER COMPACTION PARAMETERS
Marcin BALICKI
Ecole Des Mines D'Albi- Carmaux
France
July 15, 2003
Centre Poudres et Procédés
École des Mines d'Albi-Carmaux
Campus Jarlard - 81013 Albi
CT Cédex 09, France.
Téléphone : 05 63 49 31 22
E-mail : poudres@enstimac.fr
NUMERICAL METHODS FOR PREDICTING
ROLL PRESS POWDER COMPACTION PARAMETERS
Abstract
Large numbers of cohesive powders are compacted using a roll press. The
principle of compaction is that particulate materials become a compact when they are
subjected to high pressure.
Experimental work was carried out on pharmaceutical powders [1] to determine
the influence of operating parameters on the roll process compaction. Theses parameters
are determined for a given powder and must be measured again for any other powder. The
subject of this work is to understand how to optimize the process parameters versus the
mechanical behavior of powder and the roll-wall friction.
Rolling theory for granular solids has been continuously investigated for more then
40 years without a successful model representing the phenomenon. In this work, overall
rolling compaction of powders is discussed followed by study of three different theoretical
approaches. First the Johanson model is fully studied with the use of Matlab. Overview of
the other two methods: slab method and ALE finite element method was also included. A
comparison between these models is done to determine the most applicable method for
further study.
Keywords: Powder Roll Compaction, mechanical behavior, friction, finite element
method;
2
1 Introduction....................................................................................................................... 4
2 Rolling Compaction.......................................................................................................... 7
2.1 System Overview ..................................................................................................... 7
2.2 Desired Solution........................................................................................................ 9
2.3 Approach................................................................................................................. 10
3 J.R. Johanson Model Study.............................................................................................12
3.1 Introduction............................................................................................................. 12
3.2 Pressure Distribution before the Nip Region.......................................................... 13
3.3 Pressure Distribution in the Nip Region................................................................. 14
3.4 Determination of Nip Angle....................................................................................16
3.5 Pressure Distribution Calculation........................................................................... 18
3.6 Roll Force and Torque Calculation......................................................................... 18
3.7 Johanson Model Application Using Matlab............................................................19
3.7.1 Example Procedure.........................................................................................20
3.7.2 Powder Database............................................................................................. 24
3.7.3 Printing results ................................................................................................25
3.7.4 Algorithm........................................................................................................ 25
3.8 System Behavior - Parameter Variation Analysis.................................................. 30
3.8.1 Nip Angle........................................................................................................ 30
3.8.2 Maximum pressure.......................................................................................... 32
3.9 Conclusion...............................................................................................................35
3.10 List of Symbols..................................................................................................... 36
4 Slab Method ................................................................................................................... 38
4.1 Introduction............................................................................................................. 38
4.2 Modeling Rolling Compaction with Slab Method ................................................. 38
4.3 Example Slab Method Formulation ....................................................................... 41
4.4 Conclusions............................................................................................................. 44
4.5 List of Symbols....................................................................................................... 45
5 Finite Element Method................................................................................................... 47
5.1 Introduction............................................................................................................. 47
5.2 Modeling Rolling Compaction with ABAQUS .................................................... 47
5.3 Lagrange Approach................................................................................................. 48
5.4 Euler-Lagrange Approach ...................................................................................... 49
5.5 Conclusion...............................................................................................................51
6 Conclusions.....................................................................................................................52
6.1 Process Remarks..................................................................................................... 52
6.2 Powder Characterization......................................................................................... 53
6.3 Models..................................................................................................................... 54
6.4 Future Considerations............................................................................................. 54
7 Acknowledgments...........................................................................................................56
8 References....................................................................................................................... 57
9 Appendix.........................................................................................................................59
9.1 Powder Data............................................................................................................ 59
9.2 ABAQUS Source Code........................................................................................... 59
9.3 Johanson Model - Matlab Program......................................................................... 64
3
NUMERICAL METHODS FOR PREDICTING ROLL PRESS POWDER
COMPACTION PARAMETERS
1 Introduction
Roll compaction of granular solids is an industrial process used to compact a
powder to a product of high homogeneous density and strength. At the end of the 19
th
century roll press compaction was initially developed to produce coal briquettes, but
today the process has been widely adopted by mass production industries such as food
processing, metallurgical, chemical, ceramic, semi-conductor as well as pharmaceutical
and even more recently waste recycling [2]. The main principle behind roll press
compaction is that compressible granular solids become compact when they are exposed
to high stresses from applied pressure between two rolls rotating in the opposite
directions.
The advantage of roll-type press application over classical (die) compaction is that
high pressure is continuously exerted on moving granular solids providing an economical,
high volume production of granules [3]. The cost savings come in energy consumption
which is only limited to the power to drive the rolls, feeding system and any hydraulic
adjustment mechanisms. Drying costs are usually minimal. Generally a roller press can
produce tablets five times faster than die compaction press [4]. And in case of heavy
industries such as mineral and fertilizer producers several hundred tons of material per
hour can be processed [5]. However, with increase in speed comes a reduction of quality,
thus making rolling compaction most suitable for products of low unit value, less accurate
weight uniformity and high tolerances for compact imperfections.
Currently, there exists a lack of understanding of roll press powder compaction
technology due to the complexity of the system which results in large scale use of
empirical knowledge rather than scientific theory. While it is possible to achieve optimum
performance using these trial-and-error techniques, the operating costs and time become a
big factor especially within pharmaceutical industry where the materials value and desired
quality are high. Moreover, the use of basic physical data, such as compressibility and
compactibility (ability to cohere into compacts), in formulation work in order to predict
4
Fig. 1.2 Chemical Roll Press
(ALEXANDERWERK AG) [27]
Fig. 1.1 Pharmaceutical Roll Press
(ALEXANDERWERK AG)[27]
compacting behavior of particle matter is limited. An improved theoretical understanding
of powders and the rolling compaction process will enable a more rational approach to
the creation of powder compacts.
The driving force behind research in this field is the desire to formulate methods to
help the operator of rolling compaction to correctly adopt his system to a specific powder
and final product guidelines. Attempts to model the behavior of the system have been
moderately successful. Most of the original work on roll press powder compaction has
been adopted from sheet metal rolling but these cannot simply be transferred to roller
mills especially not to briquetting rollers. There exist three models that are regarded as
best suited for rolling compaction of powder: Johanson model [6-8], Slab method [8-11],
and Finite Element Analysis (FEA) [8,12].
The Johanson is one of the first to attempt to describe the rolling
compaction of powders. His work serves as the basis for beginning research in this field.
Moreover, it can provide essential boundary conditions for other models. The slab method
was originally developed and widely applied to successfully predict the pressure
distribution and roll separating force in sheet metal rolling, then it was applied to metal
powder rolling by Katashinskii [9]. The slab method seems to more completely describe
the behavior of the system in compaction because it allows for inclusions of elements such
as cohesion, friction, roll velocity; as well as their behavior as the powder is compacted.
The FEA approach is the most recent modeling technique used to represent the
deformation process in compaction of powders [13,14]. ABAQUS is one of the widely
used and commercially available finite element analysis packages which provides the
means to represent the behavior of powders. This approach is promising as it allows for
inclusion of many powder parameters but, as with the slab method, this is where the
difficulties arise. All the above require numerical processing with the possible exception
of the slab method. The slab method and FEA methods for powder roll pressing are still
in development stages paralleling the discoveries in powder characterization and process
understanding.
Currently many efforts are placed on collecting experimental roll press data and
characterizations of powders and compacts, which are both necessary for evaluating the
quality of theoretical results [5,10] The general problem is that characteristics of
particulate material are not well definable, difficult to measure and moreover they change
as the powder undergoes compaction. Characterization of the flowability of a particular
material consists of the relationship between shear strength and the compacting stress
acting on it. This information is attained by experiment using a Jenkie shear tester or an
annular shear cell tester [15]. This shear strength is dependent on bulk density which is
determined by the compaction force to which the powder has been subjected. However,
the applied stress in rolling compaction is not on the same order as in the available tester,
therefore their measurement may just be applicable at low compaction pressures. This
method also provides cohesion, which is related to the shear stress required to cause
failure of the compacted to material when is subject to zero normal force. Another
property is the wall friction describing the interaction between the particulate material and
the surface it is in contact with, This property can also be measured by modifying the
above instruments. Although the above tests attempt to measure the tribological
properties, friction is still one of the major unresolved issues in representation and
influence in powders especially while undergoing compaction. It is believed that friction
affects, and is not constant throughout, densification which poses difficulties in
5
postulating a system model. Furthermore, the powder can also be characterized by the
yield stress limit function such as Mohr-Coulomb yield criterion which describes the
relationship between pressure and failure or shearing of the powder. Finally there should
also be a assessment of the final granulate or compacted product either by physio-
chemical or physio-mechanical means [16].
This paper is an initial study giving an overview of rolling compaction, followed
by an extensive study of the Johanson method and a brief overview of the Slab method
and FEA approach. It summarizes existing analysis to simulate and predict system
behavior to gain understanding of issues involved to choose the best approach available to
proceed.
6
2 Rolling Compaction
2.1 System Overview
The roll compaction process consists of two counter rotating cylindrical rolls
mounted so that their axes of rotation are parallel (Fig. 2.1). The raw material is delivered
to the space between the rolls by gravity if the a hopper is used, and via a screw feeder or a
combination of both [17]. Friction between material and the roller surface draws in the
powder towards the narrow space separating the rolls (roll gap) where the powder is
submitted to high stresses causing compaction. Depending on the roll surface materials
can be shaped into dense sheets using smooth rolls, molded into strips using corrugated
rolls or formed into a particular geometry matching the cavities recessed in the roll
surface (briquettes) using pocketed rolls.
Feeding systems are the initial steps of the compaction process with great influence
on the compaction results. The powder needs to sufficiently fill the space between the
rolls in a uniform and continues fashion to yield a homogeneous compact. Fine powders
exhibit poor flowability therefore, generally, screw feeders are used for that they allow
greater control of feed pressure than conventional top fed system which is dependent on
gravity and cohesive property of powders. Top feed systems, hoppers, tend to work best
with non cohesive powders with high flowability.
Besides the feed system type, generally, a roll press can be categorized into two
different types: type one that includes rollers that can be rigidly fixed to a particular height
and type two that allows the adjustment of roller force. However, by adjusting the gap size
in roll press of type one, the pressure exerted on the powder by the roll can be controlled.
Conversely, the roll pressure adjustment roller type indirectly adjust the gap size which
results from the equilibrium forces between the powder and the force of the rolls. As for
7
Fig. 2.1Roll Press
x
y
POWDER
COMPACT
the width of the roller the diameter/width ratio is determined to minimize density variation
across the roller.
The compaction process can be divided into three zones defined by the behavior of
the material (Fig. 2.2). In the first zone, feeding or entry zone, the densification is solely
due to the rearrangement of particles under relatively small stresses created by the feeding
method (ie. screw feeder). In the second zone, compaction zone, particles fracture and/or
deform plasticly under heavy stress provided by the rolls. This region is believed to began
at a point called the nip angle where the powder no longer slips and begins to stick to the
wall. As a result the compaction zone is also referred to as the Nip Region. The final
zone, the exit zone, is a region of a great decrease in pressure as the compact is ejected
and can expand due to elasticity. As the material is pushed out of the process zone, it picks
up speed and begins to move faster than the roller. This increase in speed causes slip in
the opposite direction before product finally loses contact with the roller. The beginning of
the ejection region is sometimes referred to as a neutral point because it sets the boundary
between the region where the the material moves at the same speed as wall surface it
comes in contact with and the region where the material moves faster than the roll. This
angle is generally observed not to coincide with the point where the gap is the smallest but
rather just prior to it due to minor slip of compact upon ejection [10]. Moreover, the
natural point is also believed to be the point of maximum pressure.
It is important to mention the effects of friction on the system since it is the
principal mechanism by which the powder is pulled into the roll gap. The friction forces
acting on the strip are greater in the region where the roll moves faster that the material.
The difference between the frictional forces in the two regions produces a net frictional
force that pulls the powder into the roll gap. Generally, if the wall friction coefficient is
too low, the material cannot be drawn through the roll press.
8
Fig. 2.2 Zones of process.
NOT TO SCALE
COMPACTION
ZONE
ENTRY
ZONE
EXIT
ZONE
NEUTRAL
ANGLE
NIP
ANGLE
FEED
PRESSURE
At first sight the rolling compaction may look simple by after all the parameters
involved are analyzed and the powder behavior is discussed the problem contains many
hurdles. The following powder roll compaction parameters can be considered in
developing models and can be divided into the following categories:
Op erating Parameters:
Roll Force, Roll Torque, Roll Velocity, Feed Pressure, Gravity, Inertia
Geometric Parameters:
Roll Diameter, Roll Width, Gap Size
Powder Parameters:
Internal (effective) Angle of Friction, Cohesion, Admissible Stress,
Compressibility, Bulk density
Tribological Parameter:
Friction between powder and roll surface
Powder behavior characterization is one of the major research areas in
pharmaceutical powders. With out good mathematical models for behavior of granular
solids it is very difficult to create correct models of systems that include powders. As
mentioned previously there exist a number of testing techniques for characterization or
powders such as Jenike shear tester. Classical die compaction can also provide some
information, especially for compact classification as well as some insight into the wall
friction effects.
2.2 Desired Solution
The use of rollers continuously applies high pressure to a material efficiently
producing sheets that can be further processed for storage, granulation, or final product.
The process is used to alter material density, uniformity, flowability, and strength. For
example, to lower cost of handling and transportation the bulk powder density can be
increased as well as to minimize dust (excess 'fines') problems and improve handling [18].
It can also enhance performance characteristics of powder by reducing reactivity,
solubility or permeability ( ie. dosing - drug release time ) [3]. With the use of briquetting
roll press a required geometry can be achieved. In thermal operations, it can also improve
efficiency of melting, drying or burning. A strip of compacted material can also be
crushed to facilitate further processing in order to produce granules. Compaction can
minimize segregative tendencies and prevent caking during storage. The advantages of
agglomeration in pharmaceutical industry is that it is a dry granulation system with high
volume production of granules and good control of final particle bulk density and flow
properties [3].
As mentioned above, there exist many advantages of rolling compaction of
powders, however, there exist very little scientific methods for designing a successful
press by matching the process parameters to the granular solids to be compacted to get
desired results. The number of variables, lack of good mathematical models and
experimental data greatly effect the design of roller press. Currently, trail-and-error
techniques are widely used to design and calibrate such systems. Thus, when a new
powder is introduced to the roll-press operations many working parameters will change
which will require many hours and materials to find these god compaction settings. For
9
example, one side effect of incorrect setting is delamination or capping caused by
overcompaction. Scaling up pharmaceutical roll compaction process from laboratory to
industrial magnitude can also involve several issues and technologies which will require
more testing and funds. [3] More economical and simpler approach is to predict
relationships between the bulk material, the press dimensions and the operating conditions
by theoretical correlations, which are based on mathematical models and experimental
measurements. For example, a quick approximation using a computer simulation can be
useful to a predict operating parameters for preliminary trials which should be close to the
optimal conditions, requiring only minor trimming by an experienced operator.
Optimal model provides relationships between the material properties, the press
dimensions and operating parameters necessary to apply required pressure to a granular
material to achieve a desired compact density [6,8]. This applied pressure can than be used
to calculate the density or the strength of compact based on experimental data (ie.
indentation tests).
Desired relation for pressure is a function of the following types of parameters:
PRESSURE = ƒ(PROCESS, GEOMETRIC, MATERIAL, TRIBOLOGIC)
2.3 Approach
In modeling, one attempts to exclude trivial detail and include all essential features
so the model describes the actual problem with sufficient accuracy and is not
unnecessarily complicated. This mathematical model is an idealization, in which
geometry, material properties, loads, and boundary conditions are simplified based on the
analyst's understanding of what features are important and not important in obtaining the
desired results. It is necessary to understand that analytical method is applied to this
mathematical model rather than to the actual physical problem. When the physical
phenomenon is fully understood, only then one can describe or approximate the system by
selected differential equations and boundary conditions. Analytical approach is highly
desired due to an immediate ability of such model to be applied in the field by roll
compactor operators, however the task of finding analytical expressions relating all
parameters of the process is quite difficult.
Oversimplified models tend to give us poor information, but are good starting
points in understanding the problem. The first area of study was the application of sheet
metal rolling theories [21,22]. Since these do not include the same issues and
assumptions when powders are used (mainly material yield criterion), compaction of
metal powders is the area of more interest as investigated by Tundermann or Katashinskii
[9,19-22] A major breakthrough was done by Johanson who postulated a method to
predict the powder behavior in the feeding zone as well as the pressure distribution in the
nip region [6]. He also provided the means to calculate the boundary point between
feeding and nip regions as well as roll force and roll torque. His work even incorporates
application of pocketed rolls. Since this paper is an initial investigation into rolling
compaction of powders the this model was used to gain more understanding of the posed
issues as well as gain a general knowledge about the parameters and their effects. But as
presented, this model is not the most accurate representation of the process, so other
models were briefly looked at.
The slab method seems very promising because it can incorporate ample
10
information about the behavior of powders, much more than the Johanson model. It also
has potential to provide functions which can be used without the help of computers to
rapidly calculate the working parameters. This approach was original applied to sheet
metal and metal powder rolling. At its core is the analysis of the nip region a small slice at
a time. Just as the Johanson model the slab method only works in one plane assuming
there is no out of plane strain. Force equilibrium equations are written for this small slab,
including velocity, gravity, friction, and other factors. The result is a differential equation
that is rewritten in terms of one principal stress by relating and simplifying the two
existing principal stresses using a yield criterion which describes the behavior of powder
under extreme stress that causes it to shear. The complexity of this function seems to
increase with it's ability to correctly represent yield limit and therefore making the
differential equation very difficult to solve without significant simplification or numerical
methods.
The most modern approach, finite element analysis, extensively relies on
computer's ability to perform quick and numerous calculations. It is applied with
mathematical model of system behavior and experimental data for powder behavior.
ABAQUS, a commercial FEA software, has recently been used to simulate classical die
compaction with satisfactory results [13]. Rolling compaction seems more challenging
due to more complex boundary conditions, however a group of scientists has developed
FEM code for ABAQUS that simulates the problem with moderate success [8]. The
advantage of using this approach is that the models can be adjusted to produce improved
solutions through numerical testing and reformulation. Even though the computers today
are powerful, to expend the model to three-dimensions would take much computing time
but not necessarily yield more insight into the process. The FEM modeling technique
appears to be even more interesting than the Slab method due its reputation as one of the
closest real world modeling tools and its ability to incorporate any user defined parameter
behavior with relative ease.
Noteworthy is the fact that friction is believed to play a major role in the process.
All these models use a somewhat simple Mohr-Coulomb friction assumption which seems
to be true for solid materials but is not verified for powders. Furthermore, great emphasis
needs to be placed on the study of powder characterization, since this is central to the
ability of all the theories discussed to correctly model powders behavior in a compaction
environment whether it is in classical compaction or rolling compaction.
Final step would be to expend the chosen model to include material behavior
models in the feeding process, exact pocket geometries in the roll surface and expand the
model to three-dimensions. As these models are developed there needs to be parallel
development in process parameter measurement for theory verification [10].
11
3 J.R. Johanson Model Study
3.1 Introduction
Although roll press compaction was predominantly applied in metal sheet or bar
rolling, in the early 1960s a new emphasis was placed on rolling of powder metals or
briquetting granular materials. At that time, information about the design of a roll press
for powders was only of empirical nature. Thus, there existed a need for a mathematical
model describing the relationships between the material properties, the press dimensions
and operating parameters to aid engineers and operators in design and operation of roll
presses for compaction of granular materials. Johanson was one of the first to fill this void
by providing the means to determine the press dimensions and roll forces necessary to
apply the required pressure to a material with specific properties which were attained
experimentally [6].
Johanson model describes the stress function in relation to geometric parameters
and the plastic yield laws of the material undergoing continuous shear deformation
between rolls. His theory is based around the fact that the process can be divided into
distinct zones where the powder behaves in a unique and determinable fashion. These
regions are as follows:
1. Initially the powder is pushed towards the region between the two rolls with a
constant pressure by the use of a screw feeder or gravity-fed hopper. Here the
powder has the bulk material properties and does not change in density due to
gravity.
2. As the powder moves into the gap, it begins to press against the wall of the roll but
12
Fig. 3.1 Roll Press
x
y
POWDER
COMPACT
P
0
α
θ
Nip
Region
S
D
not with enough pressure to prevent slipping. In this zone, also called the slip
region, the powder experiences relatively little shear deformation.
3. At some point along the surface of the roll, the powder stops slipping and starts to
travel with the same velocity as the roller. Johanson calls this point Nip Angle, α.
4. The nip angle marks the beginning point of the compaction zone, or the nip region
(Fig. 3.1). Here the powder becomes drawn in between the two rolls which exert
pressure on the powder forcing it to undergo continuous shear deformation until it is
compacted to the thickness equal to the smallest part of the region between the rolls,
the gap size. In this region the powder is assumed to "stick" to the roll surface or
have the same velocity as the roller.
Following the compaction the material enters the exit region where its velocity is
greater than that of the rollers. At this point the compact is believed to expand, although
Johanson notes that this expansion is quite small and assumed to be negligible.
Johanson model can be used to calculate the maximum pressure exerted on the
material being compacted. This pressure peak occurs at the smallest part of the gap (θ =
0). Coupling this information with experimental pressure-density relationship, the final
density of the compact can be predicted. The model also provides means for calculating
roll force and torque.
In his equations, Johanson includes an approximation that describes rolls with
pockets or indentations; However, for the purpose of this paper, the roll surfaces are
assumed to be pocketless. Following list displays assumptions used in the work of
Johanson.
• Material is isotropic, frictional and cohesive.
• Material undergoes continues shear deformation into a solid mass.
• Rollers are rigid.
• Circumferences of the rollers are much larger then the contact area.
• Continuous plain-strain deformation.
• Friction between powder and roll surface is Coulomb friction.
• Weight of material is negligible when the press is force-fed.
3.2 Pressure Distribution before the Nip Region
Johanson introduced Jenike's model for steady state flow in the theory of roller
press compaction. The Jenike and Shield effective yield criterion ( Eq. 3.1) applies to a
region between the rolls where the powder slips against the roll surface. The yield
behavior of the powder is described by the internal friction angle δ.
Eq. 3.1
This region begins where the powder initially makes contact with roll surface, θ
0
,
at which point

the feed pressure P
0 is the dominant source of stress ( Eq. 3.2) . Notably,
13
sin¦6)=
c
1
−c
2
c
1
+c
2
one can infer that the mean normal stress ( σ = (σ
1
+ σ
2
)/2 for any θ ) remains constant
for considerable distance after the application of Po, θ
0
. Moreover, it increases to an
extremely large value as θ = 0 is approached.
Eq. 3.2
The feed angle θ
0
can be computed using the wall friction angle φ and the internal
or effective friction angle δ ( Eq. 3.3).
Eq. 3.3
The Jenike-Shield yield criterion (effective yield locus) for the slip region is
represented graphically in Fig. 3.2.
This figure also displays the wall yield locus which describes the friction condition
at the powder-roll surface contact. This friction is normally given as the slope, µ, but can
also be described by the angle φ (tan φ = µ ).
The frictional condition for slip along the surface along with the magnitude and
location of feed pressure P
0
are sufficient boundary conditions to use the Jenike-Shield
shear criterion to determine the pressure distribution before the nip region (θ > α).
3.3 Pressure Distribution in the Nip Region
The powder that enters the nip region must be compressed to a final hight equal to
the dimension of the roll gap. Johanson applies conservation of mass concept represented
by Eq. 3.4 where the change in density is proportional to the change in volume.
Eq. 3.4
14
Fig. 3.2 Internal and Wall friction loci
S
h
e
a
r

S
t
r
e
s
s
,
E
f
f
e
c
t
i
v
e

Y
i
e
l
d

L
o
c
u
s
W
a
ll Y
ie
ld
L
o
c
u
s
Normal Stress,
σ
σ
2
=P
0
σ
1
σ

τ
δ
φ

0

Α
c
0
=
P
0
¦1−sin6)
0
0
=
!+arcsin
¦
sin!
sin6
)
2
y
o
/ y
0
=V
0
/ V
o
This means that powder with a particular mass trapped in a slice under the surface
of arc-length ∆L has a volume V
α
. As this same mass travels towards the gap it must be
compressed to a slice of volume V
θ
that is under the same sized arc-length segment ∆L
(Fig. 3.3). Thus the only the volume and therefore the density changes as a finite amount
of material moves through the roll gap.
Pressure-Density relationship is experimentally attained using a linear compression
test in a tablet pressing device and is presented as the log of density as a function of log
pressure:
This relationship is often referred to as the Tablet Material Law represented by the
following equation:
Eq. 3.5
The exponent K represents compressibility which is a material property and is
constant for a powder with a given moisture content, temperature, and time of
compaction. It describes the degree of volume reduction due to applied pressure. Due to
linear behavior, attaining the compressibility is simply done by plotting a few points from
pressure - density data on a log scale and calculating the slope of the line. The inverse of
this derivative is the compressibility K.
15
Fig. 3.4 Pressure vs Density
L
o
g

B
u
l
k

D
e
n
s
i
t
y

(
γ

)

Log Pressure (σ)
Κ
1
1
2
Fig. 3.3 Volume vs Mass

L
∆L
M
α
M
θ
Mass M
α
= Mass M
θ
V
α
V
θ
c
1
c
2
=
¦
y
1
y
2
)
K
It is important to mention that the words pressure and stress are interchangeable
due the fact that there is only one constitutive pressure source in each region. For example,
in the nip region stress is primarily due to the roll pressure thus σ = P
roll
.
From Eq. 3.4 and Eq. 3.5 the following relationship between stress at any θ, σ
θ
,
and stress at the nip angle, σ
α
is derived:
Eq. 3.6
The volume between an segment of arc-length ∆L, roll diameter, D and roll width,
W is given by :
Eq. 3.7
By applying this definition to Eq. 3.6 the the pressure distribution relationship
between the rolls in the nip region can be obtained, provided the nip angle α is known
( Eq. 3.8.) As mentioned previously, since major principal stress in the nip region is much
grater then the minor principal stress, an assumption is made that σ is equal to the pressure
exerted on the powder only by the roll.

Eq. 3.8
3.4 Determination of Nip Angle
Johanson postulates that there must exist a point of transition where the powder
stops to slip along the roll surface and begins to travel with the same velocity as the rolls.
Johanson is able to mathematically describe the pressure distribution for the system where
only slip occurs and where the no slip occurs. Central to his idea is the assumption that the
gradient of these two pressure distributions is equal at a point: Nip Angle α. Figure 3.5
demonstrates this idea. Solid curve represents the powder undergoing continuous slip and
the dashed curve represents the powder traveling with the same velocity as the rollers;
thus the intersection of two curves in gives the angular position, α , or the beginning of
the nip region. Note that the nip region is from angular position of 0 to angular position α,
and the zone where the powder slips along the roll surface is between the angle θ and the
point of where pressure gradient of slip state equals 0. This point is also the point of
application of feed pressure.
16
c
0
=c

y
0
/ y
o)
K
=c
o ¦
V
o
/ V
0)
K
V
0
=
[
S+D¦1−cos 0)cos 0
|
ALW
c
0
=c
o
[
¦1+S/ D−coso)coso
¦1+S/ D−cos 0)cos0 |
K
The gradient of pressure for the assumption of slip along the roll surface ( Eq. 3.9 )
is derived by using the effective yield-locus equation ( Eq. 3.1) combined with equilibrium
conditions that form a solvable system of hyperbolic-type equations. However, the
discussion of this method of calculation is beyond the scope of this paper.
Eq. 3.9
Therefore, by equating Eq. 3.9 and pressure gradient equation of the case where
no slip along the surface occurs ( Eq. 3.10), combined with the assumption that not only
the gradients but also the pressures at that point are equal, σ
slip
= σ
stick
, and solving for θ
will yield the nip angle.
Eq. 3.10
The variables used in the above are derived from the yield and wall loci (Fig. 3.2)
and are represented by the following equations:
Eq. 3.11
Eq. 3.12
Eq. 3.13
17
Fig. 3.5 Determination of Nip Angle
NIP
REGION
SLIP
REGION
Feed Angle θ
0
Application of P
0
Nip Angle α
dc
dx
=
4c¦ n/2−0−+) tan6
D
2
[
¦1+S/ D−cos0)
|
[ cot ¦ A−U)−cot ¦ A+U)|
dc
dx
=
Kc
0
¦2cos0−1−S/ D) tan 0
D
2
¦1+S/ D−cos 0) cos0
A=
0+u+n/ 2
2
U=n/ 4−6/ 2
+=
n−arcsin
¦
sin!
sin6
)
−!
2
3.5 Pressure Distribution Calculation
The procedure for calculating the pressure distribution in the nip region is as
follows: First, the nip angle is determined using the aforementioned method. The nip
region pressure distribution equation ( Eq. 3.8) requires a value of pressure at the point of
transition, σ
α
. This value is calculated by numerically solving the differential equation for
pressure gradient in the slip region ( Eq. 3.9) with initial condition of σ
θ
= σ
0
, where σ
0
is
the mean normal stress at the position of application of P
0
( Eq. 3.2.) Figure 3.6
demonstrates pressure distributions for two powders, AvicelPH101 and Lactose
Monohydrate in a roll press with roll diameter of 130 mm, gap size of 1mm and initial
feed pressure of .06 Mpa. [see Appendix for data]
3.6 Roll Force and Torque Calculation
According to Johnson the pressure distribution is not very useful in design of a roll
press process, therefore he provides means of calculating roll force and roll torque. When
the pressure distribution in the nip region is known the roll force can be calculated
numerically using equation 3.14 where the the P
m
is the maximum pressure exerted by the
rolls on the material and F is represented by equation 3.15. The nip region is the limit of
integrations because the pressure there are much greater than those in entrance and exit
regions. Figure 3.7 demonstrates the effects of roll gap hight variation on roll force for two
different powders .

Eq. 3.14
Eq. 3.15
18
Fig. 3.6 Pressure Distribution in Nip Region
RF=P
m
WDF/ 2
F=

0=0
0=o
[
S/ D
¦1+S/ D−cos 0)cos 0 |
K
cos0d 0
In a similar manner roll torque can be calculated using the following equations:
Eq. 3.16
Eq. 3.17
3.7 Johanson Model Application Using Matlab
Matlab mathematics software package was used to create an application
implementing Johanson Model of rolling compaction of powder (Fig. 3.9). Matlab was
used to numerically solve the non-linear simultaneous and also differential equations
discussed in previous sections as well provided an intuitive graphical user interface to
demonstrate the capabilities of Johanson Model. Moreover, the program provides a
19
Fig. 3.7 Roll Force vs Roll Gap
Fig. 3.8 Roll Torque vs Roll Gap
T =

0=0
0=o
[
S/ D
¦1+S/ D−cos 0) cos0 |
K
sin¦20) d 0
RQ=P
m
WD
2
T /8
means of creating and altering databases of powder properties and process parameters
which allows for quick analysis of parameter variation on powder compaction. The
program was written with modularity in mind to improve portability and efficiency. The
source code contains extensive comments to aid in future development.
3.7.1 Example Procedure
The following figure displays the graphical user interface (GUI) which consists of
system parameters, database functionality, plot selection and plot variable range (Fig.
3.10).
20
Fig. 3.9 Screen Shot
The GUI is run in Matlab environment (version 6.1.0.450 Release 12.1) by
opening and running the 'nip.m' file. This file contains the main portion of the project:
user input logic, algorithms and GUI manipulation.
After the GUI loads the user can immediately begin to experiment with the default
values for AvicelPH102 loaded into input areas (Fig. 3.11).
The parameters variables are as follows:
21
Fig. 3.11 User Input - Parameters
Fig. 3.10 User Interface
µ = roll surface - powder friction coefficient
δ = internal friction angle of powder
K= Compressibility constant
S= Gap size - smallest distance between rolls
D= Diameter of Rolls
P
0
=initial feed pressure (perpendicular to major principal stress)
RW= roll width
These values can be replaced with any desirable numeric value. In case of a
typographical mistake (entering a combination of alpha and numeric characters) a warning
window will pop up. It is also advisable to pay attention to the Matlab command line for
system and program messages especially if extreme values are entered by the user. The
next step is to choose the type of relationship desired from the plot pop up menu. (Fig.
3.12)
When a plot is chosen the user input fields adjust their visibility according to the
required parameters for the particular operation. In the case of the Maximum Pressure vs
Roll Gap, Gap size input box is hidden because it is the invariant and Roll Width is not
used in this calculation (Fig. 3.11).
After choosing the appropriate parameter values the user should adjust the range of
the invariant which will limit the time of calculation and display only the desired results
(Fig. 3.13). The range variables are :
rMin = minimum limit
rMax = maximum limit
22
To began the process the PLOT button should be pressed. At this point the
program collects user inputs and runs the algorithm displaying the results in a separate
Matlab Figure window which can be edited, saved or printed (Fig. 3.14).
If another plot of the same type is desired the results can be plotted on the same
axes as the last plot for comparison (Fig. 3.15).
To achieve this effect, after altering the parameters, the button labeled 'Plot On the
Same Axes' should be pressed displaying 'ON' (Fig. 3.16).
23
Fig. 3.13 Variable Limits
Fig. 3.14 Result
Fig. 3.15 Two Results
This effectively finds a figure containing the same type of plot and displays the
new data on its axes. The program also creates data labels for each curve displaying all the
respective parameters entered by the user. If multiple curves are on the same axes, these
labels may need some user interaction to clarify which data label belongs to which curve.
3.7.2 Powder Database
To improve the utility of the software a database functionality was implemented.
The software allows the user to create a database of all input variables: powder properties
and process parameters. Using the provided interface this information can be altered,
saved and loaded at anytime (Fig. 3.17).
The database data is stored in Matlab variable format file with a suffix of .pdb ;
However, there may be a need for powder database use outside of the Matlab
environment, thus an export function was created that creates a ASCII text version (.txt)
of the currently opened database. This data file is space delimited as in the following
example:
Lactose75 0.18 39 7.75 1 130 0.1 50
AvicelPH102 0.38 42 4.75 1 130 0.1 50
Avicel2 0.32 28 4.31 1 130 0.1 50
The fields correspond to parameters in the following fashion:
Name FricCoefficient InternalFrictAngle Compressibility RollGap RollDia P
0
RollWidth
The program automatically filters the current directory for files ending with a .pdb. After
the .pdb database file is opened, loading a particular powder into the user input boxes is
done by highlighting the desired powder from the powder database list and clicking on
LOAD (Fig. 3.17 ). If include process parameters option is checked the powder properties
as well as system properties will be loaded into their respective input boxes.
24
Fig. 3.16 Plot Location Button
Fig. 3.17 Powder Database
To add a the current configuration of user inputs for powder parameters type in or
alter the current NAME located in a red box above the LOAD button and click ADD. This
creates an instance of the powder NAME in the powder list. This procedure also saves the
process parameters along with powder parameters.
To remove the powder select the NAME of the powder from the powder list and
click REMOVE. This change is only permanently affected after the current powder
the list to the last saved state.
Furthermore , another database utility stems from the fact that Matlab naturally
allows the user to edit, save and print Figures, providing another method for archiving
records of experimentation.
3.7.3 Printing results
Matlab print preview function was chosen as a preferred method to print the state
of the user interface because it allows the user to rotate, align and fill the page with the
GUI. Moreover each figure/axes is fully editable allowing for adding text, lines, arrows
and changing colors, fonts, line types, etc. This figures can also be saved for later editing,
exported as an image (tiff or jpg) file or just printed.
3.7.4 Algorithm
This section describes the internal workings of the program by using pressure
distribution calculation as the example. This example is probably the most useful in the
fact that the roll press operator is able to adjust the gap size The following flow chart
summarizes the internal program procedure from the time the user presses the PLOT
button to the final display of the results.
25
26
Fig. 3.19 Example Program Flow Chart
Desired Relationship
i.e. Maximum Pressure vs Gap Size
Collect and convert user input to usable form
Calculate constants
Range of analysis variable: 0.5 - 2.5 mm
USER INPUT
ALGORITHM
For each increment of gap size
from rMin to rMax do the following
Call getUserVarInput(handles) function to :
Converrt coeficcient ofwallfriction to wall friction angle
Calculate constants - A, u, ν ( Eq 3.11, Eq 3.12, Eq 3.13)
Numerically solve for nip angle (α)
Call getAplha(handles) to do the following:
Using fsolve, solve two simultaneous equations
(Eq 3.9 , Eq. 3.10) for θ which represents the point of
intersection of the two curves or the angle α.
Numerically solve differential equation for
pressure distribution in the slip region
The differential quation for the pressure gradient during
slip (Eq. 3.9) is solved using direct numerical integration
solver (ODE45) which returns array of results
Calculate initial stress and application point
Store it along with the corresponding gap size The data is stored in a double array for plotting
DISPLAY
Check if the Plot in the Same Figure
is Checked
YES
Select the last figure
of same type
NO
Create a new figure
Plot results data
Label the figure
X axis represents gap size
Y axis represents maximum pressure
All user input needs to be numeric
User input can come from the database module
Increment size is calculated by dividing the range
of Gap Size by number of desired increments, ie 40.
Powder Properties:
K, δ
Geometric Properties:
S,D,W
Wall Friction: u
Feed Pressure:
P
0
Calculate the maximum pressure using pressure
distibution equation in the nip region
Calculate the stress at angle α
With the values from above, from the pressure
distribution equation (Eq. 3.8) )calculate the pressure at
angular position 0 .Maximum Pressure exists at this point.
User inpt parameters are converted to text
and positioned on the axes by calculating
X and Y axis data ranges
From the results of the solver extract the value of stress
at angle = α.
This takes adventage of matlab's ability to find
graphical objects
Initial Stress (Eq. 3.2) , Point of application (Eq. 3.3)
First step after the user has initiated the procedure by pressing the PLOT button is
the collection of user input data. The program queries all the input fields but only uses the
ones required by the particular relationship chosen and in this case Maximum Pressure vs
Gap Size. The user inputs are then converted to usable format required by the model, for
example angles need to be in radiants and coefficient of friction needs to be converted to
angular format. The following function was written for this purpose.
Note: '%' denotes a comment
function [] = getUserVarInput(handles)
%set global variables used in functions.
global d2r r2d D S W d K v u RW Po rMin rMax
%get all the variables
%angle variables are converted to radiants
d2r=pi/180; % conversion factor degrees into radiants
r2d=180/pi; % conversion factor radiants into degrees
%%%%%%%%
% S=Gap size(between rolls)
% D=Diameter of Rolls
% K=Compressibility constant
% d=delta - internal friction angle of powder
% Po=initial pressure at the entrance (perpendicular to major principal stress
% W=phi - wall (roll-powder) friction angle
% (attained from friction coefficient tan(phi)=mu)
% v=cute angle between the tangent to the roll surface and the direction of
% major principal stress which can be calculated using W and d
% RW=roll width
% rMin = min range value
% rMax = max range value
%%%%%%%
% The next functions grab the string input variables and convert them to
% double precision numbers
S = str2double(get(handles.varS,'String'));
D = str2double(get(handles.varD,'String'));
K = str2double(get(handles.varK,'String'));
d = str2double(get(handles.vard,'String'))*d2r;
Po = str2double(get(handles.varPo,'String'));
RW=str2double(get(handles.varRW,'String'));
W=str2double(get(handles.varW,'String'));
%w at this moment is the friction coefficient so take atan to get the wall
W=atan(W);
% calculate v which is used all equations
u=(pi/4)-(d/2);
v=(pi-asin(sin(W)/sin(d)) -W)/2;
rMin = str2double(get(handles.rMin,'String'));
rMax = str2double(get(handles.rMax,'String'));
The next step is to calculate the initial stress on the powder at the beginning of the
application of the feed pressure as defined by Eq. 3.2 and its location defined by Eq. 3.3.
%initial condition
so=[Po/(1-sin(d))];
%point of application of feed pressure ( equivalent to Eq. 3.3)
x0=(pi/2)-v
At this point the algorithm has all the necessary data to began the application of the
27
Johanson Model to calculate the pressure distribution at different gap sizes. The following
code is the main loop iterating through 40 different gap sizes. The iterator size is
calculated by dividing by 40 the difference between invariant range values, rMax and
rMin. This iterator quantity may be different for other calculations (plot types) to attain the
best balance between calculation time and result resolution.
xspan=[x0,0]; %integration limits from Po application to 0
i=1; %iterator for array indexing
x=0; %maximum pressure is at 0
step=(rMax-rMin)/40; %Calculate the iterator size
for M=rMin:step:rMax
S=M; %Current Gap size
a=getAplha(handles); %calculate the α
sol=ode45(@slipODE,sspan,so); %solve the slip differential equation
% using Runga-Kutta and
%initial condition of so at point x0
sa=deval(sol,a); %from solution find stress value at position α
N(i,1)=S; %save the current gap size
%using the initial stress at α calculate the
%maximum pressure (x=0) and save it
N(i,2)=sa*((1+S/D-cos(a)*cos(a))/(1+S/D-cos(x)*cos(x)))^K;
i=i+1; %increment the array index
end
The getAplha function accepts the argument handles which is passed for formality;
it contains information about the GUI, although it is not used in this function. The
required variables are simply passed from function to function by their global definition.
And since each function refreshes all the variables there is no problem with unwanted
variable values. The fsolve equation solver from the Matlab Optimization Toolbox finds a
root (zero) of a system of nonlinear equations. In this case the two nonlinear equations are
the pressure gradient with slip ( Eq. 3.9) and the pressure gradient without slip ( Eq. 3.10).
It returns the point of the intersection of the curves representing the equations which is the
function a=getAplha(handles)
global d2r r2d D S W d K v u RW Po rMin rMax
InitialGuess = [.1;.1]; %this value seems to work well
Options = optimset('Display','off'); %do not display progress
% call fsolve which returns a vectory of which the first component is the
% angle α and the second part is the pressure gradient value
XY = fsolve(@SlipStickFun, InitialGuess, Options);
a=XY(1);
The fsolve method is based on the nonlinear least squares algorithm. The
advantage of using a least squares method is that if the system of equations is never zero
due to small inaccuracies, or because it just does not have a zero, the algorithm still
returns a point where the residual is small. However, if the Jacobian of the system is
singular, the algorithm may converge to a point that is not a solution of the system of
equations. More specifically, by default fsolve chooses the large-scale optimization
algorithm which is a subspace trust region method and is based on the interior-reflective
Newton method. Each iteration involves the approximate solution of a large linear system
using the method of preconditioned conjugate gradients [23].
The above mentioned equations are contained in a function called SlipStickFun in
28
a SlipStickFun.m file.
function F=SlipStickFun(V)
global d2r r2dD S D W d K v u
x=V(1); y=V(2);
F=[y-(4.*(pi/2-x-v).*tan(d))./((D/2.*(1+S/D-cos(x))).*(cot(((x+v+pi/2)/2)-u)-
cot(((x+v+pi/2)/2)+u)));
y-(K.*(2.*cos(x)-1-S/D).*tan(x))./((D/2).*((1+S/D-cos(x)).*cos(x)))];
The equations are stored in a vector where any multiplication, division or power
operations need to have '.' in front of them to allow for element by element matrix
operation. Without this symbol the matrix multiplication would involve the inner
products between rows and columns.
It is important to note that the stress at θ (σ
θ
) is equal in both equations at point of
intersection and therefore can be omitted. The pressure gradient values are represented by
y while angular position θ is represented by x.
After the angle α is attained the value is used in calculating the pressure at such
angle by solving the differential equation of the pressure distribution with slip ( Eq. 3.9.)
The initial condition is σ
0
which is the mean normal stress at the position of application of
P
0
( Eq. 3.2.) Matlab's ode45 numerical differential equation solver was applied It is
based on an explicit Runge-Kutta formula, the Dormand-Prince pair. It is a one-step solver
in computing y(t
n
), it needs only the solution at the immediately preceding time point, y(t
n-
1
). In general, ode45 is the best function to apply as a "first try" for most problems [23].
The ode45 requires a argument in a function format similar to the SlipStickFun.m file.
function dsdx=slipODE(s,x)
global d2r r2d S D B d K v u
dsdx=[(4.*s.*(pi/2-x-v).*tan(d))./((D/2.*(1+S/D-cos(x))).*(cot(((x+v+pi/2)/2)-u)-
cot(((x+v+pi/2)/2)+u)))];
After the algorithm finishes the results need to be plotted. First the program calls
the newFigure function which was created to check whether the user desires to have the
data plotted on the same axes. The function searches all the figures open for a figure with
the name of the current type of plot; in this case to 'Maximum Pressure Vs Roll Gap'. If
such figure exists it is chosen to be the current figure. If more than one exist the last one
created is chosen. However if no match is found a new figure with the name of the desired
type is created and set to current. Following the data is plotted by using the plot command:
%call the figure choosing function.
figure(newFigure(handles,'Maximum Pressure Vs Roll Gap'));
plotA=plot(N(:,1),N(:,2));
The following code labels the axes, and uses the text function to display the user
input data:
title('Maximum Pressure Vs Roll Gap');
xlabel('Roll Gap [mm]');
ylabel('Maximum Pressure [MPa]');
xData = get(plotA,'XData'); % Get the plotted data
yData = get(plotA,'YData');
TPosX=(max(xData))*0.6; % returns the max value in x direction
TPosY=(max(yData))*0.8; % returns the max value in y direction
Tsp=TPosY*.07; % creates a variable for vertical text spacing
29
%print user variables on the graph
text(TPosX,TPosY-TSp,0, ['D= ',num2str(D), ' mm']);
text(TPosX,TPosY-TSp*2,0, ['Po= ',num2str(Po), ' MPa']);
text(TPosX,TPosY-TSp*3,0, ['K= ',num2str(K)]);
text(TPosX,TPosY-TSp*4,0, ['\delta= ',num2str(d*r2d), ' Deg']);
text(TPosX,TPosY-TSp*5,0, ['\mu= ',num2str(tan(W))]);
Figure 3.6 demonstrates pressure distributions for two powders, AvicelPH102 with
lubricated wall and Lactose in a roll press with roll diameter of 130.0 mm, gap size of 1.0
mm and initial feed pressure of 1.0 Mpa. Similar methodology was used to represent
variations of pressures based on other parameters.
3.8 System Behavior - Parameter Variation Analysis
The compactibility of a granular solid is defined as the ability to be transformed
into a compact of a certain mechanical strength. Thus, it is an essential and fundamental
property of a tablet mass and a determining factor for successful tablet production.
Compactibility is normally assessed by the relationship between compact strength and a
process variable, usually the maximum force or pressure applied on the powder during the
compaction; Although, other process related factors can effect the mechanical strength of
compacted powder [24].
The model provides reasonably accurate values of basic operating parameters such
as roll force and roll torque for granular solids that exhibit high coefficient of friction
against the roll surface and middle and high values of compressibility constant. Very
compressible materials (low K values) and high compaction pressures (ie. 100 Mpa) yield
results that do not correlate with experimental data; with errors over 50 % [8].
Although powder properties such as internal friction angle and compressibility are
not independent of each other, their effects on the system can be used to predict system's
behavior for similar powders. Wherever possible experimentally gathered powder
properties were used in the Johanson Model to compare the effects of parameter variation.
The experimental data was collected using classical die compaction for compressibility
and annular shear tester for internal friction and wall friction [25].
3.8.1 Nip Angle
The nip angle is an important boundary information for other models for rolling
compaction of powders. It defines one of the limits for the region where most of the
compaction is believed to take place. Therefore it is important to become familiar with the
process and powder parameters influence on the behavior of this angle. Although it is very
difficult to measure the nip angle, literature exists and states that the model provides a
good estimate of the nip angle. The results are in agreement with experimental data
especially for gravity fed roller presses [8].
Generally, for a set of parameters, if only internal friction angle increases the nip
angle increases and as a result more powder is drawn into the space between the rolls
yielding a higher density compact requiring greater roll pressure, Fig. 3.20.
30
Similar effect, but not nearly as strong, is observed by increasing the coefficient of
friction between the roll wall and powder as shown in Fig. 3.21.

In Fig. 3.22, it is observed that the nip angle decreases significantly for materials
with low compressibility, or high K value. As for very compressible materials, according
to Johanson there may not exist a region in which slip occurs.
31
Fig. 3.21 Nip Angle vs Wall friction
Fig. 3.20 Nip Angle vs Internal Friction

Surprisingly, the nip angle does not significantly depend on the magnitude of
dimensional parameters, roll gap and roll diameter. As demonstrated in the following
figure, the nip angle fluctuates only a few tens of a degree while the press undergoes a
considerable change in roll gap to roll diameter ratio.
3.8.2 Maximum pressure
The pressure distributions for different powders have similarly shaped curves over
the time of roll contact with maximum pressure appearing in the narrowest part of the gap;
angular position 0, Fig. 3.6. Therefore, one can assume that maximum pressure is a good
representation of the general trend of pressure distribution in the nip region. It is also the
important factor in predicting final compact properties.
Maximum pressure is directly affected by the feed pressure [1]. This is especially
evident in a system that requires relatively low compacting force, where the change of
feed pressure significantly increases the pressure exerted on the powder, as displayed in
32
Fig. 3.23 Nip Angle vs Roll Gap
Fig. 3.22 Nip Angle vs Compressibility
Fig. 3.24.
Generally, the feed pressure for a roll press with rollers of 130 mm diameter is in
the range of 0.04-0.06 Mpa [1]. The pressure results in that date seem to be reasonable. As
for the instance when the feed pressure is taken below 0.0275 MPa, the resulting
maximum pressure (Gap=1mm) becomes negative. This phenomenon may be related to
the fact that the powder needs to be fed into the roll gap with a pressure above a certain
limit, otherwise compaction will not occur.
Fig. 3.25 displays effects of gap size parameter which according to Johanson is the
most influential press dimension in determining the pressure in the nip region, while the
roll diameter has much less of an effect. As the gap size becomes smaller the pressure
rises exponentially to very extreme values which will unlikely occur in reality due to
buildup of powder prior to the nip region (overfeeding). On the other hand, if the gap is
too large too little powder may enter the nip region where poor compaction is expected.
Using the information from the above graph the roll press operator is able to
predict the behavior of the powder. If he or she is using a roll press type that allows for
33
Fig. 3.25 Maximum Pressure vs. Roll Gap Size
Fig. 3.24 Maximum Pressure vs. Feed Pressure
adjusting the gap size the desired compact density can be achieved by adjusting the
separation height of the rigid rollers until the optimum pressure required to compact the
powder is achieved. As mentioned before this pressure is obtained experimentally using
tablet compaction instruments. In the case of the other type of press which is equipped
with a hydraulic roll force adjustment ( lacks direct gap size adjustment) the same graph
can be used to deduct the gap size which may be utilized in verification of process
calibration.
Fig. 3.26 shows the effects of friction between roll surface and powder. Rough
rolls increase the force that drags the granular solid into the region of compaction, and as a
result of Johanson's assumption of mass conservation, a denser compact is expected
resulting from an increase in maximum pressure. Occasionally there is a problem with
material gluing to the roll surface resulting in unwanted film and negatively influencing
press performance. In this case the roll surface may need a mechanical cleaner, or a
lubricant directly applied to the wall surface. The other solution is to add a lubricant such
as Magnesium Stearate to the bulk powder in concentrations of 0.5 - 1.0 percent.
The curve in the above plot reverses its trend between coefficient values of 0.4 and
0.5. This is a model phenomenon which can be explained via the relationship between rate
of change of force and the rate of change of contact surface area. As wall friction increases
the nip angle increases (Fig. 3.21). The nip angle is one of the boundary points of the
contact surface; the other ones are the neutral angle 0 and the roll width which stay
constant for this simulation. Therefore, if the nip angle increases the contact surface
increases and if the rate of this area increase is greater than the rate of increase of roll
force, the pressure (Force/Area) decreases.
The next graph (Fig. 3.27) displays the effects of compressibility factor variation
on maximum pressure as well as the effect of increasing the internal angle of friction.
34
Fig. 3.26 Maximum Pressure vs. Wall Friction Coefficient
3.9 Conclusion
Compactibility is often assessed by the relationship between compact strength and
maximum pressure applied to the powder during compaction. In many cases, due to
simplifications made while modeling powder behavior resulted in the model's inability to
represent the system correctly. However, the most important result of the Johanson model
is that it provides the value of Nip Angle, which is often used as a boundary condition for
other analytical and numerical models.
It is clear that a wide variation in press output exist when different materials are
used in the same compaction process configuration. The most influential press dimension
in determining the maximum pressure is the roll gap (S). Moreover, increasing powder-
roll friction increases the effectiveness of the process. As for the nip angle, if the roll gap-
roll diameter ration (S/D) is much less than 1, the nip angle seems to only depend on the
following material properties: compressibility constant (K), effective angle of friction (δ),
and wall friction (µ). One can further deduce that the feed pressure has no effect on the nip
angle at all, however in reality this is probably not the case.
The discrepancies between Johanson method and experimental results may be due
to the use of simple material material yield criterion for both slip and no slip regions,
especially at the point of transition where high stress values are permitted and the bulk
material law remains unchanged [7]. The other disadvantage of the model is that it only
uses the mean shear stress (σ = (σ
1
+ σ
2
)/2 ), but it is often desirable to work with the
principal stresses for more correct stress distribution. Moreover, mass conservation
assumption is rather simple and it does not accurately describe the heterogeneous flow of
material undergoing compaction in the nip region [1].
The rate at which a load is applied to material can affect the results obtained; in
rolling compaction the roller speed is directly linked to this phenomenon. In his method,
Johanson does not consider velocity of the rollers which has been demonstrated to affect
the compaction process [1]. However, the variation of roll velocity relative to the feed
pressure (screw feeder velocity) is tolerable if it is within a certain range where the strip of
compact produced exhibits enough cohesion and mechanical strength [5]. Furthermore,
35
Fig. 3.27 Maximum Pressure vs. Material Compressibility
the relationship between these two parameters creates an envelope of possible values
which will have minor effects on the compaction as long as compact is created.
Moreover, the model does not account for the change of the friction coefficient of
wall surface-powder interaction which is directly dependent on the change of the density
that varies greatly as the powder becomes compacted [8,25] . It also doesn't incorporate
the effects of powder cohesion and its change with density.
In conclusion, the Johanson model is considered the corner stone of the study of
rolling compaction of powders. However, due to aforementioned assumptions and
simplifications it does not provide sufficient simulation of the process. Nonetheless, it is
one of the first models to allow engineers to analyze the process and allow an operator to
predict initial step parameters in a iterative roll press calibration procedure.
3.10 List of Symbols
D - roll diameter
F - force factor
K - compressibility constant for granular solid
P
m
- vertical pressure at angular position 0
P
0
- horizontal feed pressure
RF - roll separating force
RT - roll torque for one roll
S - roll gap
T - torque factor
V
θ
- volume between arc length segments ∆L at position θ
V
α
- volume position at θ = α
V
m
- volume position at θ = 0
W - roll width
α - nip angle
γ - bulk density of granular solid
γ
θ
- bulk density at θ
γ
α
- bulk density at θ = α
γ
m
- bulk density at θ = 0
∆L - element of arc length
δ - internal (effective) angle of friction
φ - wall friction angle ( roll surface - powder) tan φ = µ
µ - coefficient of friction ( roll surface - powder ) arc tan µ = φ
ν - acute angle between direction of σ
1
and tangent to roll surface
36
σ - mean normal stress in granular solid
σ
1
- major principal stress (y)
σ
2
- minor principal stress (x)
σ
0
- mean normal stress at a point of application of P
0

σ
α
- stress at nip angle
θ - angular position
θ
0
- feed angle
37
4 Slab Method
4.1 Introduction
The slab method was developed by Siebel and von Karment for sheet metal
forming [8]. It has then been adopted to rolling compaction of metal powder rolling by
Katashinskii [9]. The main difference between the different applications of slab method to
roll compaction is the type of material yield criterion is implemented which in case of
sheet metal is the Von Mises yield criterion.
The objective of the slab method is to provide an analytical model for powder
compaction which takes into account powder behavior and equilibrium equations
representing forces exerted on a the powder in the nip region. The advantage of this model
is that it provides information about the two principal stresses unlike the Johanson model
which only describes the mean stress. It also has potential to include characteristics of
powders such as cohesion and global friction between particles. However, as more
complex powder behavior characteristics are implemented the ability to analytically solve
the resulting differential equation decreases considerably. If possible such analytical
relationship would provide an operator the pressure exerted on the powder which
compared with experimental data can provide predictable compact properties such as
density and strength.
4.2 Modeling Rolling Compaction with Slab Method
Although the rolling process is carried out at low speeds, it is natural to assume
38
Fig. 4.1 Slab Method
σ
f
x
y
POWDER
NOT TO SCALE
COMPACT
α
θ
D

ω
σ
0
dx
ω
h
0
h
f
that static analysis model is a suitable approach. The compaction zone is divided into
differentially small slices bounded at top by the roller surfaces (Fig. 4.2). These
boundaries can be described as straight lines tangent to the roller contours due to strip's
small width, dx. If the forces of inertia acting on the material being formed are ignored,
only the stresses acting on the four sides of the trapezoidal slab need to be taken into
account. At the material-surface contact point friction exists which creates shear stress, τ.
From the stresses, the forces are attained by multiplying the direct and tangential
components by their respective surface areas. Than by resolving the forces into horizontal
and vertical forces equilibrium equations can be written.
The general problem includes the following aspects:
Process Parameters :
Pressure of feeder (P
0
), Angular Velocity of Rollers (ω)
Roller Pressure (P), Nip Angle (α)
Geometric Parameters :
Diameter (D), Gap size (h
f
)
Powder Parameters :
Cohesion (β), Internal friction angle (δ),
Relative Density (ρ =Apparent/True), Yield function
Tribologic Parameters :
Powder - roll surface friction definition (µ)
These elements can also be categorized into groups of unknown and given data:
Unknown parameters :
Stress in x and y (σ
x
, σ
y
) , ρ , P as a function of position
39
Fig. 4.2 Free Body Diagram of Slab (Entry)
θ
θ
PdS
τdS
σ
x
(x + dx) (h + dh) σ
x
h
dx
h

+

d
h
h
Given Parameters :
β , µ, α, initial stress at entrance (P
0

0
), H
f
, Yield Function, ω, D

The desired function is
The general approach is to define the assumptions, write down the constitutive
equilibrium equations, apply boundary conditions and yield criterion to formulate a
governing differential equation.
The assumption for the following example are:
• Rollers are rigid.
• Plane sections remain plane as they pass through the rolls (plane strain).
• Stresses are distributed uniformly within slab elements.
• Friction force in the contact area follows Coulomb's law.
• The circumference of the roller is much larger than the contact area.
• Roll pressure is equal to the principal stress in the y direction
The boundary conditions include nip angle which can be obtained from Johanson
model or measured experimentally; However, either of these experimental methods are
currently not very verifiable. At the entrance the θ = α and h = h
0
while at exit θ = 0 and h
= h
f
. As for pressure, the major source of stress is the pressure (P
0
) produced by the feeder
from the entry end and by the compact from the exit end.
The friction condition between the powder and roll surface is assumed to be
constant for sheet metal rolling analysis. However this assumption is not believed to be
correct as internal friction, cohesion and wall friction properties are dependent on the
density of granular material. A key issue exists here because wall friction affects the
pressure exerted on the powder and yield (densification) is a function of pressure. And as
mentioned before friction is a function of density making the wall friction directly related
to the pressure and vice versa.
The yield criterion is a major element of modeling compaction as it is the
definitive element by which we classify materials. There exist a number of different
criterion that represent yield limits of materials. The following few have been used in
metal and powder research:
• Von Mises ( used for solids )
Elliptical in nature along the x axis, but for dense materials it approaches
40
Eq. 4.1Desired Relationship Equation
P=f {P
0
, ω, D, h
f
, Powder(β, δ, Yield Function), µ}
Eq. 4.2 Von Mises Yield Criterion
c
x
2
+c
y
2
−c
x
c
y
=Y
2
straight lines. This model is predominantly used in modeling of metallic
materials because they exhibit little change in volume.
• Kuhn - Downey ( used for porous media )
Takes in account the change in density. Slab method implementation by
Dec [8]paper uses this yield function which has traditionally been applied
to metal powder modeling. Note that as ν goes to 0.5 and ρ increases to 1
this model's behavior approaches Von Mises model.
• Drucker - Prager/Cap model ( used for porous media )
This model is an extension of Drucker-Prager yield function for admissible
stresses. It consists of three equations each used in different states of the
material as demonstrated by the three surfaces in Fig. 4.3. For this reason
this model is very difficult to implement in the Slab method. Although it
may be possible to use along with numerical integration. Drucker-Prager
Cap model describes a cohesive powder more precisely than the previous
models.
4.3 Example Slab Method Formulation
Using the above assumptions the following calculation procedure can be used to
begin the initial formulation of the slab method as applied to rolling compaction. Due to
the plain strain and roller diameter assumptions the maximum principle stress is equal to
roll pressure for small angles (σ
y
= P). The following procedure is applied to the nip
region.
Horizontal forces:
41
Eq. 4.3 Kuhn - Downey Yield Criterion
Eq. 4.4 Poisson ratio as a function of density.
Fig. 4.3 Drucker-Prager Cap model.[13]
c
x
2
+c
y
2
−2+¦ ¢)c
x
c
y
=Y
2
+¦ ¢)
¦h+dh)c
x
¦ x+dx)−hc
x
¦ x)≈

Adding the horizontal components of the roll pressure and shear the following expression
is derived for the equilibrium forces in the x direction.
With the following geometric relations:
a substitution for contact surface dS is made to yield:
and simplifying :
Now with the assumption of Coulomb friction between the powder and the roll :
The expression can be further simplified
42
Fig. 4.4 Geometric Relations
d
S
=

d
x

/

c
o
s

θ

dx
dx tan θ
θ
Eq. 4.5 Coulomb Friction Relation
≈c
x
¦x)¦h+dh)+c
x
¦ dx)¦h+dh)−c
x
¦ x) h
≈c
x
¦x)h+c
x
¦x)dh+c
x
¦ dx)h+c
x
¦dx)dh−c
x
¦ x) h
≈c
x
dh
dx
+
dc
x
dx
h+
dc
x
dx
dh

zero
≈c
x
dh
dx
+h
dc
x
dx

d¦c
x
h)
dx

F
x
=0⇒
d¦c
x
h)
dx
−PdSsin¦ 0)−tdS cos¦ 0)

d¦c
x
h)
dx
−P
dx
cos 0
sin¦0)−t
dx
cos0
cos¦0)

d¦c
x
h)
dx
−P dxtan¦0)−tdx
t=uP
d¦c
x
h)
dx
=Pdx tan¦0)−uPdx
d¦c
x
h)
dx
=P¦ tan¦0)−u)dx
and finally since the slab is symmetric about the x axis the equation representing the
balance of forces is:

Now similarly the vertical force equalibrum expression is derived :
substitute the surface dS in terms of q and simplify:
use the coulomb friction relation to write the expression in terms of P and θ :
and by factoring out the roll pressure we get:
Expanding the equationg to include the whole slab (symmetry about the x axis) yields:
For small angles P y is approximately equal to σ y:
Rearranging the equation gives the expression for roll pressure in the y direction:
Combining equilibrium equations ( Eq. 4.6 and Eq. 4.7 ) :

and simplifying yields the force equilibrium expression for the whole slab:
43
Eq. 4.6 Force Equilibrium Equation in X direction
Eq. 4.7 Force Equilibrium Equation in Y direction
d¦c
x
h)
dx
=2P¦tan¦ 0)−u)dx

F
y
=0⇒PdS cos¦ 0)+t dSsin¦0)−P
y
⇒P
dx
cos0
cos¦0)+t
dx
cos0
sin¦ 0)−P
y
⇒Pdx+tdx tan¦0)−P
y
⇒Pdx+uPdxtan¦0)−P
y
P
y
=P¦1+utan¦ 0))dx
P
y
=2P¦1+utan¦0))dx
c
y
=2P¦1+utan¦ 0)) dx
P=
c
y
2¦1+utan¦ 0)) dx
d¦c
x
h)
dx
=2¦tan¦ 0)−u)dx
c
y
2¦1+utan¦0))dx
dx in terms of angle θ:
substituting for dx yields:
The above equation needs one more step to convert it to usable form of one unknown
parameter (σ). Yield equation provides this required relationship between σ x and σ y.
For this there are a number of options varying in complexity and level of correctness for a
given material.
Moreover for further investigation the equation relating hight and angle θ is :
and for small angles this expression can be approximated to:
The resulting differential equation combined with boundary conditions may or may
not be solvable by hand therefore a Runga- Kutta or other numerical methods can be used.
4.4 Conclusions
The slab method displays much promise to solve this half-century old problem of
rolling powder compaction. However, the method does not provide information about the
tapped powder zone prior to nip region. It also assumes that the boundary condition
information for the nip angle is available. There exists very little evidence for
experimental measurement of the nip angle as well as verified application of the Johanson
method of attaining this data. The proper characterization of friction is central to the
success of simulation procedures, especially in powder compaction process. It is the main
mechanism by which the powder undergoes compaction. If the friction between the roller
and the powder is too low, even with the help of a screw feeder, the powder will not be
drawn through the roll stand. It was shown by Michrafy that density variations in
compacts made via the granular material compaction are mainly attributed to friction [14].
The friction phenomenon in powder compaction emanates mainly from two sources: inter-
particle friction and powder-die wall friction. These two powder properties are directly
related to density. As a powder is continuously shearing due to applied pressure its
tribologic properties change and as a result effect the transformation of pressure from roll
through friction. Iterative solving may be necessary to apply experimental data to the
model.
Most recent work applying the slab method to powder compaction is done by
44
Eq. 4.8 Force Equilibrium Equation for Slab
d¦c
x
h)
dx
=
c
y
¦ tan¦0)−u)
¦1+utan¦0))
dx=Rcos¦ 0)d 0
d¦c
x
h)
d 0
=c
y
Rcos¦0)
¦ tan¦ 0)−u)
¦1+utan¦0))
h=h
f
R¦1−cos¦0))
h=h
f
R 0
2
Schonert and Sander [10]. Unique to their approach is use of the normal to shear stress
relation (transmission coefficient) in a powder. This coefficient serves as a substitute for a
yield criterion by representing the relative amount of pressure transmitted from the σ
x
to
σ
y
.
The major hope of using the slab method is that it may provide a mathematical
formula that can be used without the need of a computer, perhaps only a four function
calculator.
4.5 List of Symbols
dx - slab width
dS - slab surface in contact with roll wall
D - roll diameter
P
0
- feed pressure in the x direction
P
x
- pressure in the x direction
P
y
- pressure in the y direction
P - roll pressure
h

- height of powder section
dh

- change in height from slab to slab
h
f
- height of compact equal to roll gap height
h
0
- height of powder at start of compaction
Y - yield
α - nip angle
β - cohesion
δ - internal (effective) angle of friction
φ - wall friction angle ( roll surface - powder) tan φ = µ
µ - coefficient of friction ( roll surface - powder ) arc tan µ = φ
ν - Poisson ratio
ρ - bulk density of granular solid
σ
x
- major principal stress in x direction
σ
y
- major principal stress in y direction
σ
0
- horizontal stress at the beginning of compaction
σ
f - horizontal stress at the end of compaction
σ
α
- stress at nip angle
θ - angular position
45
dθ - small change in angular position corresponding to dS
τ - shear stress
ω - roll velocity
46
5 Finite Element Method
5.1 Introduction
There exist numerous types of finite methods available, the most prominent are:
FEM - Finite Element Method for Continuum Media (solids)
FDM - Finite Difference Method (differential equation solver)
CVM - Control Volume Method = CFD Control Fluid Dynamics = FDM with
integration on the control value.
While all these may be great modeling methods each one is suitable for a particular
application. The FEM suits the problem at hand and is implemented in the ABAQUS
commercial FEA package. [12] The finite element method seems to be the most versatile
approach because it takes account of substantial information about geometry, powder
behavior, and frictional conditions. For this fact nearly realistic computer experiments are
possible.
ABAQUS is composed of two different packages: ABAQUS/Explicit and
ABAQUS/Standard (implicit). The main difference between these two procedures is that
explicit methods require a small time increment size that depends solely on the highest
natural frequencies of the model and is independent of the type and duration of loading.
Simulations generally take on the order of 10,000 to 1,000,000 increments, but the
computational cost per increment is relatively small. Implicit methods do not place an
inherent limitation on the time increment size; increment size is generally determined
from accuracy and convergence considerations. Implicit simulations typically take orders
of magnitude fewer increments than explicit simulations. However, since a global set of
equations must be solved in each increment, the cost per increment of an implicit method
is far greater than that of an explicit method [26]. Although, some equations can't be
solved by explicit integration and thus requiring the use of implicit method.
The explicit dynamics method was originally developed to analyze high-speed
dynamic events that can be extremely costly to analyze using implicit programs. The
explicit dynamics procedure is often used for quasi-static simulations involving complex
non-linear effects found in complex contact conditions. The explicit central difference
method is used to integrate the equations in time; therefore discrete mass matrix used in
the equilibrium equations plays a crucial role in both computational efficiency and
accuracy. Quazi-static analysis incorporates rate-independent material behavior where
time is not very important. The mass scaling is used to adjust the mass of the model
artificially to reduce the solution time. ABAQUS provides automatic mass scaling but it is
often more desirable to choose one by the user, although it is more like art than science.
5.2 Modeling Rolling Compaction with ABAQUS
The ABAQUS file is an instructions code providing all the necessary information
for the program to create the model and run the simulation.
• Node definition
• Element definition
• Surface definition
47
• Assign element properties (rigid body, material, etc)
• Define material properties
• Define boundary conditions
• Define contact surfaces
• Define step properties (number of increments, dynamic explicit, etc)
• Define output results ( all, strain, velocity, reaction force, etc)
General application in ABAQUS starts with the definition of the objects involved.
The mesh is first defined, and since the press is symmetric about the x axis, symmetry is
assumed to decrease design and computation time. The elements are created from four
nodes in a systematic fashion. Generally for a two dimensional model, they are plane-
strain continuum elements with reduced integrations (CPE4R). Following, is the definition
of the material and then the boundary conditions ( roll is defined as a rigid surface,
dynamic explicit, velocity of roll, friction etc.)
The last step is to define the desired data and acquisition frequency as well as the
time limit of the procedure.
Two approaches may be used to solve the rolling compaction; method based on the
Lagrange approach and the another which is based on the Lagrange-Euler technique. Some
information is given in the following.
5.3 Lagrange Approach
A pure Lagrange method is based on the fact that the elements in a mesh represent
the powder. The mesh moves as if it was the powder, and as the powder undergoes stress
and strain the elements directly represent the result. The example of this technique
assumes that the material is formed into a slab and given a velocity. This block then
travels into the roll gap where it is compressed. Because the complexities of the powder
behavior, this technique was applied to a thick metal sheet.
To prevent the effects of impact from the initial contact between powder and roll,
the linear velocity of the powder is taken equal to the associated velocity of the roll.
48
Fig. 5.1 Lagrangian Mesh (Initial Contact Point)
Following figure is the result of simulation of rolling of a thick metal sheet. It
represents irreversible strains in the sheet after a steady state is reached.
This approach is not very applicable to powder compaction due to its inability to
address severe mesh distortion exhibited by highly compressible materials. The following
approach was investigated.
5.4 Euler-Lagrange Approach
Adaptive meshing is an ABAQUS/Explicit tool that makes it possible to maintain
high-quality mesh through out an analysis, even when large deformations occur by
allowing the mesh to move independently of the material [12]. This technique combines
the features of the often used pure Lagrangian analysis in which the mesh represents the
material and Eulerian analysis in which the mesh is fixed spatially while the material
flows through it. This method is often referred to as the Arbitrary Lagrangian-Eulerian
(ALE) analysis is extensively used in fluid flow analysis. Central to this method is the fact
49
Fig. 5.3 Eulerian Mesh
Fig. 5.2 Sheet Metal Rolling - Steady State Reached
that the mash is remapped when necessary to prevent the analysis from terminating as a
result of severe mesh distortion.
Initially, the mesh is created representing the approximate space to be occupied by
the powder traveling between the rolls. As the powder becomes compacted topologically
similar mesh throughout the analysis is maintained: no elements are created or destroyed.
However, the element shape and position may be altered.
The top surface of the mesh is set to move or slide freely (Lagrangian boundary)
while the left and right surfaces are defined as inflow and outflow (Eulerian boundaries) to
allow the material to flow through the mesh. The bottom of the mesh is set to be a
symmetric boundary. The mesh follows the contour of the rolls inside the nip region as
illustrated by the next figure.
A few investigative simulations were conducted. The next figure is an example of
a failed run due to extreme distortion of the mesh causing the program to terminate
prematurely. The initial point of powder-roll contact (nip angle) is the node farthest away
from the gap that the roll surface is in contact with. This contact point may shift during the
simulation.
When the model is not configured correctly it is clear that the simulation is not
correct. However with investment of time and correct input data this approach may be
successful.
50
Fig. 5.4 Contact Area
5.5 Conclusion
These form of approach seems to be the most promising but not very practical.
ABAQUS/Standard with Drucker-Prager / Cap powder behavior model.[25] It is believed
that the same result can be attained with the explicit method.
According to literature [8], finite element method offers most attractive approach
because incorporates complex information about geometry, powder behavior, and
tribologic conditions. Although it requires expensive computer and software resources, it
has promising ability to closely model powder rolling compaction, and as a result improve
in process and equipment optimizing that may outweigh the costs of initial investment.
More experimental data is necessary to tweak the FEM model to match the real
results. After the simulation is correct for a particular powder, a new powder should be
introduced and examined in the same FEM model to see if the overall settings are good to
determine which parameters are powder specific. Theoretically similar results may be
attained for different combinations of input factors.
Once again the ability of this method to predict the operational parameters of a roll
press heavily relies on the input information provided by the user from experimental data.
The material behavior is at the center of this problem.
51
Fig. 5.5 Failed Simulation Attempt (Material = Powder)
6 Conclusions
This report is an initial investigation into the nature of rolling compaction of
powders in the theoretical research area. The Johanson model was utilized to gain general
understanding of parameters involved and their behavior with system alteration. Two
other approaches were investigated briefly to determine the direction of theoretical roll
compaction research conducted at the Centre Poudres et Procédés at the Ecole des Mines
d'Albi-Carmaux. It has been concluded that the finite element method is the most
promising approach at the moment. Nevertheless, the slab method investigation should
not be abandoned as it has potential to be more useful in the industrial setting. On a
further note, these methods need to be explored in parallel with powder characterization
studies considering that particular materials are at the center of the problematic issues in
modeling their compaction in a roll press.
6.1 Process Remarks
The following are process remarks taken from experiments with Johanson model
and literature. Initial feeding pressure has a definite effect on the final stress on the
powder, moreover the applied stress heterogeneity is depended on the heterogeneity of
feed pressure. For example, when using a screw feeder local pressure fluctuations are
observed in the feeding zone corresponding to the period of the screw in sinusoidal
fashion [3,5]. Moreover, fine powders have poor dearation ability especially while using
pressure to feed the press. The air is squeezed between the particles and has difficulties to
leave the mass of the powder being compacted which negatively influences feeding and
therefore compaction exhibited by variation of density and strength of compact. Moreover
there exists a danger of compact delamination or even explosion due to highly pressurized
air bubbles escaping the compact in the exit region. In such case vacuum dearation system
is suggested to possibility reduce these problems. Furthermore, there may exist a problem
of powder leakage, where the loose material exits the space between the rolls. This
uncompacted powder needs to be recycled for the process to be efficient [5].
As for process variables the gap size seems to be the most influential process
parameter for it greatly changes the pressure exerted on the powder. Wall friction is
another parameter that could be altered to adjust the compaction pressure by the use of
lubricants or roughing of rolls. Roll velocity variation effects the roller minimally relative
to the feed pressure as long as the compact is produced. With a constant feed pressure, for
low roller speeds overcompaction occurs while for high speeds no strip is formed [1].
It is also important to mention that flow of powder in the nip region is not straight
forward. The particles move at different speeds depending on their position in the
compaction zone. This fact is often omitted by assumption made to simplify this flow to a
constant movement of particles relative to the x axis [5].
According to Michrafy the density affects the wall friction as the powder is being
compacted [14]. This friction is a function of density which is dependent on the pressing
force which, in fact, is partially transmitted by the same contact friction. This circular
relationship may be difficult to represent in a analytical approach and is more suitable for
a numerical method. Moreover, this wall friction variation is not very easy to measure or
represent. At the moment the behavior of this parameter is not verifiable in rolling
compaction but seems to decrease in die compaction. In general, under densification
internal friction angle increases and cohesion increases and wall friction decreases.
52
The other major issue in the rolling compaction area is the unavailability of
accurate and thorough force/strain measurements techniques. For example the
measurement of the pressure at the surface of the roll, or the pressure distribution along
the axis of rotation are two major goals of rolling compaction research teams. Shear
stresses on the wall surface are also quite difficult to measure due to residue buildup and
heterogeneous feed pressure distribution. Generally, a hydraulic system is used to
maintain the bearing blocks of a movable roller; such system is often susceptible to
oscillations and irregularities complicating measurement acquisition and disrupting
compact homogeneity. Not very well understood part of the process is the feeding zone
where the stresses exerted by the rollers is very small, (ie. less than 0.1 MPa) and is not
measurable by piezoelectric transducers placed on the roll surface [5]. Another parameter
which is yet to be measured experimentally is the nip angle which is often used as a
boundary condition. With out these quantitative results the accuracy of the modeling
technique is only compared to the final compact and does not give us much knowledge
about the phenomenon of powder behavior undergoing compaction in a roll press.
6.2 Powder Characterization
Before rolling compaction model is created a few issues need to be analyzed. One
is the fact that currently there exist limited ability in defining the behavior of powders. All
the models mentioned in this paper use many mechanical property theories of Jenike
regarding the flow of bulk solids which are fairly good at the beginning of compaction and
change significantly in compression zone especially when the material is closer to the
solid state. However, this is all that is available at the moment and is applied as a result.
Internal angle of friction, bulk density and real density (using helium) are the few
parameters believed to be fairly constant. Other parameters such as compressibility,
contact friction are not so easily definable thus providing much of the headaches for the
research community. In terms of internal friction and particle cohesion, there exist two
major methods of attaining this information: Jenike shear tester and the annular ring shear
tester. A preference is given the utilization of the ring (annular) cell shear tester rather
than Jenike shear tester due its reliability and ease of use. As for measuring the friction
coefficient between the powder and a contact surface both of the above mentioned tests
can altered to take such data. It is difficult to estimate the quality of the information
provided by these experiments for powder-wall surface behavior, but they are the only
available quantitive source.
Another issue is the shear yield limit representation. There exists a number of
different yield criterion but their usage varies due to their complexity and assumptions
taken. Drucker-Prager/Cap model appears to be the most extensive in describing yield
behavior of powder[13]. The data for this model is collected from diametrical
compression, simple compression and compaction in an instrumental die [8].
The other end of the process, the final compact characterization, is also
problematic. Unlike a tablet compact, the hardness testing is not easy for a slab of
compact because a wide area with heterogeneous strength and density is observed whether
a gravity feed hopper or a screw feeder are used. For this reason the compact needs to be
tested along many points along the width and the length of the sheet but the most optimum
positions are yet to be studied. Furthermore, the choice of hardness testing method is not
clear either because standard tableting tensile strength test is generally no applicable, so a
measurement such as the indentation test could be employed. Similarly, there exists very
53
little evidence for high quality density measurement.
6.3 Models
Rolling compaction of powders is not a simple problem as it was theoretically
studied for over fort years and is still one of the major research topics in powders.
Johanson was one of the first investigators into rolling compaction of non-metallic
granular media; his work serves as the cornerstone of research in powder compaction
field. It was chosen as the initial step in this study for its simplicity and recognition. In
previous studies the model has been found moderately successful with good results for
powders exhibiting low compressibility [11]. The model also gives insight into the general
trends in parameter variation which can be used in estimation of minor system
adjustments or comparison of compaction effects of same family powders.
The slab method is more complicated than the Johanson model because it can
include more mechanical properties of the powder (cohesion, wall friction function, etc)
and analyzes two principle stresses present. Currently for the method to be successful
numerical differential equation solver is used due to high complexity of the governing
equation. Schonert was able to successfully apply the slab method but his work only
presents results for a very hard powder with low compressibility [10]. The difficulty of
this approach arise in the application of yield criterion and number of factors included
such as cohesion, friction, gravity, and inertia.
ABAQUS software is rather expensive and generally has a large learning curve. It
may be a bit cumbersome to use it in an industrial setting, therefor a custom FEA program
specific to the case of rolling compaction would be of best interest. However, this step is
only reachable after a known general FEM modeling package is applied successfully to the
problem. The advantage for creation of such tool is that for almost every powder a new
mesh and new powder behavior need to be defined and automating or improving the
current methods is desirable.
6.4 Future Considerations
Besides the Johanson's limited success, none of the above mentioned models have
investigated the granular solid behavior in the region where the powder is mainly
compacted by the feed pressure just prior to the compaction zone. The correct
representation of powder in the this feeding zone needs to be investigated further because
the results may improve the boundary conditions required for the models studied.
All the models discussed here assume Mohr-Coulomb friction which is quite a
reliable method for classifying friction between solid materials but has not been studied
much for granular solids. Wall friction in powders - solid interactions is believed to be
related to internal friction, perhaps this type of approach could be beneficial in postulating
boundary information.
Another technique that has not been discussed yet is the use of particle simulation
where computer model of each powder particle in a bulk is created and accounted for
through out compaction. This concept is rather difficult to achieve at the moment due to
limitations of computing systems and little knowledge of the micro interactions between
particles. This approach would incorporate the heterogeneous flow of particles in the nip
region. This approach may be the leading method of simulating powder but that may not
happen for ten or twenty years.
54
The models discussed may converge some day to simulate reality very closely;
however, this will largely depend on our abilities to more precisely characterize granular
solids.
55
7 Acknowledgments
Thank you to Abder Michrafy for being a great mentor and a friend. For shearing his
mathematics knowledge and scientific research and presentation techniques.
field of powder compaction and providing experimental data for my program.
Thank you to Stefan Haas for the long discussions about powders as well as
philosophizing about social aspects of Europe and US.
Thanks to David Leach(Gary) for being a great mate, a source of comic relief and a
motivating gym partner.
Thank you to Maxime for being a dear friend and a great neighbor with an oven.
Thank you to Maryse for being the most energetic and helpful administrative person I
ever met.
56
8 References
[ 1 ] O. Simon, P. Guigon, Interaction between Feeding and Compaction During Lactose
Compaction in a Laboratory Roll Press, PhD Thesis, Université de Technologie de
Compiègne, (2000)
[ 2 ] O. Simon, P. Guigon “Correlation between powder-packing properties and roll press
compact heterogeneity.” Powder Technology 130 (2003) 257-264
[ 3 ] P. Sheskey, G. Sackett, L. Maher, K. Lentz, S. Tolle, J. Polli “Roll Compaction
Granulation of a Controlled-Release Matrix Tablet Formulation Containing HPMC”
Pharmaceutical Technology (1999)
[ 4 ] M.J. Rhodes, Principles of Powder Technology, John Wiley & Sons Ltd. (1990) p.
220
[ 5 ] P. Guigon, O. Simon “Roll press design-influence of force feed systems on
compaction.” Powder Technology 130 (2003) 41-48
[ 6 ] J.R. Johnson, “A rolling theory for granular solids,” ASME, Journal of Applied
Mechanics 32 : series E. No. 4, (1965)
[ 7 ] K. Sommer, G. Hauser, “Flow and compression properties of feed solids roll-type
presses and extrusion press.” Powder Technology 130 (2003) 272 -276
[ 8 ] R.T. Dec, A. Zavaliangos, J. C. Cunningham, “Comparison of various methods of
powder compaction in roller press,” Powder Technology 4642 (2002)
[ 9 ] V.P. Katashinskii, “Analytical determination of specific pressure during the rolling of
metal powders,” Poroshkovaya Metallurgiya (1996) 1-10
[ 10 ] K. Schonert , U. Sander, “Shear stresses and material slip in high pressure roller
mills.” Powder Technology 122 (2002) 136 -144
[ 11 ] Mise en forme des materials , calcul/elasticitè – French textbook.
[ 12 ] Abaqus 6.2 Manual
[ 13 ] A. Michrafy, D. Ringenbacher, P. Tchoreloff “Modeling the compaction behaviour
of powders: application to pharmaceutical powders.” Powder Technology 127 (2002) 257-
266
[ 14 ] A. Michrafy, S.Kadiri, J. Dodds “Wall friction and its effects on the density
distribution in the compaction of pharmaceutical excipients.” To be published in
Chemical Engineering Research and Design.
[ 15 ] M.J. Rhodes, Principles of Powder Technology, John Wiley & Sons Ltd. (1990) p.
100
[ 16 ] M.J. Rhodes, Principles of Powder Technology, John Wiley & Sons Ltd. (1990) p.
195
[ 17 ] K. Schonert , U. Sander, “Operational conditions of a screw-feeder-equipped high-
pressure roller mill.” Powder Technology 105 (1999) 282 -287
[ 18 ] M.J. Rhodes, Principles of Powder Technology, John Wiley & Sons Ltd. (1990) p.
215
[ 19 ] J.H. Tundermann, A.R.E. Singer “The flow of iron powder during roll compaction ”
Powder Metallurgy, (1968) Vol. 11, No. 22
[ 20 ] J.H. Tundermann, A.R.E. Singer “Deformation and densification during the rolling
of metal powders,” Powder Metallurgy, (1969) Vol. 12, No. 23
[ 21 ] G.Y. Tzou, “Theoretical study on the cold sandwich sheet rolling considering
Coulomb friction.” Yung Ta Institute of Technology (2001)
[ 22 ] H. Gao, S.C. Ramalingam; G.C. Barber, G. Chen “Analysis of symmetrical cold
rolling with varying coefficients of friction.” Journal of Materials Processing Technology
124 (2002) 178-182
57
[ 23 ] Matlab Online Manual version 6.1.0.450 Release 12.1
[ 24 ] G. Alderborn and C. Nystrom, Pharmaceutical Powder Compaction Technology,
Marcel Dekker, Inc.(1996) p. 247
[ 25 ] S. Kadiri's ongoing thesis work on classical die compaction.
[ 26 ] S.P. Wang, S. Choudhry and T.B. Werheimer “Comparison between the static
implicit and dynamic explicit methods for EFM simulation of sheet forming process.”
MARC Analysis Research Corporation, Palo Alto, CA., USA (1997)
[ 27 ] www.alexanderwerk.com - Manufacturer of small industrial machines and apparatus
58
9 Appendix
9.1 Powder Data
Avicel - Microcrystaline Cellulose
Wall Lubricant - Magnesium Stearate placed on the powder contact surface
Avicel
PH102
Avicel PH102
+ Lubricant
Avicel
PH101
Lactose *
Monohydrate
Particle Size 90 mm 90 mm 50 mm 75 mm
Bulk Density 0.31 g/cm
3
0.31 g/cm
3
0.29 g/cm
3
0.55 g/cm
3
Internal Friction Angle 42° 42° 45° 39°
Wall Friction Coefficient µ
(Angle)
0.28
(15.6°)
0.19
(11.4°)
0.29
(16.3°)
0.24
(13.5°)
Compressibility - K 4.75 4.75 3.64 7.7-8.0
* Taken from O. Simon thesis. [1]
All other data was taken from Kadiri's thesis work.[25]
Wall friction coefficient greatly depends on the type of material used in the rollers and
is approximated to be the given values from available data.
Values for feed pressure are dependent on a powder.
For example, typical values, for feed pressure for lactose are are 0.04 - 0.06 Mpa [1]
for a press with roll diameter of 130 mm
9.2 ABAQUS Source Code
The following figure represents node numbering used in creation of elements.
The next figure is a representation of dimension of the model.
59
Fig. 9.1 Node Numbers
-0.125 -0.1 -0.075 -0.05 -0.025 0 0.025 0.05 0.075 0.1 0.125
0.000
0.002
0.004
0.006
0.008
0.010
0.012
0.014
0.016
0.018
0.020
0.022
311
310
309
314
312
313
315
304
303
302
307
305
306
308
297
296
295
300
298
299
301
290
289
288
293
291
292
294
283
282
281
286
284
285
287
276
275
274
279
277
278
280
269
268
271
272
273
267
270
262
261
260
265
263
264
266
255
254
253
258
256
257
259
248
247
246
251
249
250
252
242
241
243
244
245
239
240
237
238
234
233
232
235
236
227
226
225
230
228
229
231
220
219
218
223
221
222
224
214
213
215
216
217
211
212
208
209
210
205
204
206
207
199
198
197
202
200
201
203
192
191
190
195
193
194
196
187
186
188
189
183
184
185
181
182
177
176
178
179
180
175
174
173
172
171
170
169
168
167
166
165
164
163
162
161
160
159
158
157
156
155
154
153
152
151
150
149
148
147
146
145
144
143
142
141
140
139
138
137
136
135
134
133
132
131
130
129
128
127
126
125
124
123
122
121
120
119
118
117
116
115
114
113
112
111
110
109
108
107
106
101
100
99
103
104
102
105
93
94
92
98
97
95
96
86
87
85
91
90
88
89
78
79
81
80
84
82
83
73
72
71
75
76
74
77
65
66
64
70
69
67
68
58
59
57
63
62
60
61
51
52
50
56
55
53
54
44
43
47
48
45
49
46
37
38
36
42
41
39
40
30
31
29
35
34
32
33
23
24
22
28
27
25
26
16
17
15
21
20
18
19
9
10
8
14
13
11
12
2
3
1
7
6
4
5
X [mm]
Y

[
m
m
]
60
Fig. 9.2 Nip Angle
The source code for the latest
ABAQUS/Explicit with ALE method. This
example requires a node definition file from
the included CD.
rpc2D.inp
*** Rolling Compactions of Powders
*** Ecole Des Mines D'Albi
*** May 2003
*** Marcin Balicki - balicki@enstimac.fr
******************************************************
************************
*** Description:
*** First model using euler method - created by Abder Michrafy
*** Altered the definition of the roll
******************************************************
************************
*** Notes :
*** Don't use blank lines,especially when the previous line ends
in ','
FLAT ROLLING - ADAPTIVE MESH, EULERIAN NODES AT
INLET AND OUTLET
Units - N, m
******************************************************
************************
**The *RESTART, WRITE option is used to write the model
definition
**and state to the state (job-name.abq) and part (.prt) files.
** These files, which will for convenience be referred to as the
** "restart file," allow an analysis to be completed up to a certain
** point in a particular run and restarted and continued in a
** subsequent run with the *RESTART, READ option.
*RESTART,W,N=20
**W - restart file is to be written during the analysis.
**N - number of intervals during the step at which the *RESTART
output
** states are to be written.
******************************************************
************************
**call the node definition file
*INCLUDE, INPUT=node2d.inp
******************************************************
************************
**Master element
*ELEMENT, TYPE=CPE4R
1, 1, 2, 9, 8
** element #, a,b,c,d
** abcd represent the node numbers making up the 4 node element
**TYPE - defines the shape and behavior of the element
**Continuum elements begin with the letter "C."
**"PE," a plane strain element;
******************************************************
************************
*ELGEN, ELSET=BAR
1,44,7,1,6,1,44
**This option is used to generate elements incrementally.
** the element set name is BAR
**1. Master element #,
**2. Number of elements to be defined in the first row generated.
**3. Increment in node numbers of corresponding nodes from
element to element
** in the row.
**4. Increment in element numbers in the row. The default is 1.
**If necessary, copy this newly created master row to define a
layer of
** elements.
**5. Number of rows to be defined, including the master row. The
default is 1.
**6. Increment in node numbers of corresponding nodes from row
to row.
**7. Increment in element numbers of corresponding elements
from row to row.
**If necessary, copy this newly created master layer to define a
block of
** elements.
**8. Number of layers to be defined, including the master layer.
The
** default is 1.
**9. Increment in node numbers of corresponding nodes from
layer to layer.
**10. Increment in element numbers of corresponding elements
from layer
** to layer.
**Repeat this data line as often as necessary. Each line will
generate
** N1 ´ N2 ´ N3 elements,
**where N1 is the number of elements in a row, N2 is the number
of rows
** in a layer, and N3 is the number of layers.
******************************************************
************************
**This option is used to define properties of solid (continuum)
elements,
**infinite elements, and truss elements.
*SOLID SECTION,ELSET=BAR,MATERIAL=POUDRE
5.E-2,
**The argument depends on element type
**ie. if plane strain is used the argument is the element thickness
**
******************************************************
************************
*** MATERIAL DEFINITION
***
**Definition of material used in the SOLID SECTION
*MATERIAL,NAME=C15
**these can change with respect to field variables (ie temperature)
*ELASTIC
1.5E11,.3
**Young's Modulus, Poisson's ratio
**
**
**Plasticity given must be true stress and true strain
**use ABAQUS manual to convert from nominal stress and strain.
**usually found in material guides.
*PLASTIC
**Yield Stress, plastic strain
168.72E06,0
219.33E06,0.1
272.02E06,0.2
308.53E06,0.3
337.37E06,0.4
361.58E06,0.5
382.65E06,0.6
401.42E06,0.7
418.42E06,0.8
434.01E06,0.9
448.45E06,1.0
**
*DENSITY
7.85E3,
** Example of druker prager cap model for material
** SOIL STRATA D1 (700 ft - 1100 ft)
** ---------------------------------
*MATERIAL,NAME=D1
*ELASTIC
47700.,.17
*CAP PLASTICITY
200.,36.9,0.33,0.02,0.,1.
61
*CAP HARDENING
400.,.0
600.,.02
800.,.05
900.,.09
**CAP CREEP, LAW=SINGHM,
MECHANISM=CONSOLIDATION
** 2.2e-7, 2.1e-2, 1.0, 1.0, 50.0
** 3.5e-5, 2.1e-2, 1.0, 1.0, 212.0
***PERMEABILITY,SPECIFIC=3.07e-2
** 16.8,,0
** 32.0,,250
*EXPANSION
0.32E-05,
*DENSITY
7.85E3,
******************************************************
************************
***
*MATERIAL, NAME=POUDRE
** Proprietes elastiques
** E nu RhoR
*ELASTIC, TYPE=ISOTROPIC, dependencies=1
0.1134E+9,0.28, ,0.47
0.3028E+9,0.28, ,0.56
0.5453E+9,0.28, ,0.63
1.0146E+9,0.28, ,0.72
1.7871E+9,0.28, ,0.82
*CAP PLASTICITY
** Parametres de la courbe intrinseque
** d beta(°) R epvol0 alpha K
0.00014E+6 , 36.82 , 0.558 , 0. , 0.03 , 1.
*CAP HARDENING
** Comportement en durcissement
** P eps(vol)pl
0.00013E+6 , 0.
9.086E+6, 0.915
19.47E+6, 1.122
30.54E+6, 1.239
40.15E+6, 1.330
54.75E+6, 1.379
66.95E+6, 1.426
***USER DEFINED FIELD
***DEPVAR
**1
*DENSITY
7.85,
******************************************************
************************
*** VARIABLES - NODES/ NODE SETS
***
**create a node for defining the roll
*NODE,NSET=REF
10000, 0.0409 , 0.185
**#,x,y
******************************************************
************************
***
***This option assigns nodes to a node set ="name"
*NSET,NSET=BOT,GEN
1,309,7
** a,b,c
**a. First node in the set.
**b. Last node in the set.
**c. Increment in node numbers between nodes in the set.
*NSET,NSET=TOP,GEN
7, 315, 7
*NSET,NSET=BACK,GEN
309, 315, 1
*NSET,NSET=BACK2,GEN
310, 315, 1
*NSET,NSET=FRONT,GEN
1, 7, 1
*NSET,NSET=EULER
BACK, FRONT
** 2 node set labels to be assigned to this node set.
**
*** The back fo the slab
*NSET,NSET=EQN1,GEN
310, 315, 1
*** Front of the slab
*NSET,NSET=EQN2,GEN
2, 7, 1
******************************************************
************************
***
*** Degres de liberte contraints
***
*EQUATION
2,
EQN1,1,1.0,309,1,-1.0
*EQUATION
2,
EQN2,1,1.0,1,1,-1.0
***
*ELSET, ELSET=EULER1, GEN
1, 221, 44
*ELSET, ELSET=EULER2, GEN
44, 264, 44
*ELSET,ELSET=TOP,GEN
221, 264, 1
*ELSET,ELSET=BOT,GEN
1, 44, 1
***
**The roller is rotated at a constant angular velocity of 1
revolution per
surface
**speed of 1.1 m/sec. The plate is given an initial velocity in the
global
**x-direction. The initial velocity is chosen to match the x-
component
** of velocity of the roller at the point of first contact. (19.5°) cos
(x)*W
** This choice of initial velocity results in a net acceleration of
zero
** in the x-direction at the point of contact and minimizes the
initial
** impact between the plate and the roller.
** This minimizes the initial transient disturbance
*INITIAL CONDITIONS,TYPE=VELOCITY
BAR,1,1.0369
*BOUNDARY
BOT, 2, 2
*SURFACE, NAME=SURF1, REGION TYPE=SLIDING
TOP,S2
*SURFACE, NAME=EULER1, REGION TYPE=EULERIAN
EULER1,S1
*SURFACE, NAME=EULER2, REGION TYPE=EULERIAN
EULER2,S3
******************************************************
************************
**roller definition
**arc starts at START and finishes at FIRST PAIR
**of circle elements, second pair is the center of the circle
**circle is drawn in a counterclockwise direction.
**relative rigidity of the roller is high so it is completely rigid
*SURFACE,TYPE=SEGMENTS,NAME=RIGID,FILLET
START, 0.040900, 0.010000
CIRCL, -.134100, 0.185000 , 0.0409 , 0.185
*RIGID BODY, REFNODE=10000, ANALYTICAL SURFACE =
RIGID
******************************************************
************************
** start of a step arguments are the same as header
62
*STEP
Powder Compaction
**
**the type of simulation - Dynamic
**Include EXPLICIT parameter to specify explicit time
integration.
**can be used to perform quasi-static analyses with complicated
**contact conditions; and allows for either automatic or fixed time
**incrementation to be used--by default
*DYNAMIC,EXPLICIT
,0.225
**the argument defines overrides default time of process.(ie .2)
**
******************************************************
************************
**Prescribing boundary conditions at nodes
**The roller is rotated at a constant angular velocity of 1
revolution per
**Boundary conditions are applied to those parts of the model
where the
** displacements are known. Such parts may be constrained to
remain fixed
** (have zero displacement) during the simulation or may have
specified,
** nonzero displacements. In either situation the constraints are
applied
** directly to the nodes of the model.
** <node number>, <first dof>, <last dof>, <magnitude of
displacement>
** 1=X; 2=Y; 3=Z;4=rot X;5=rot Y;=rot Z;
** Boundary conditions on a node are cumulative
** The node 10000 = ROLL -> set DOF# 1 through 5 to 0
*BOUNDARY
10000,1,5
**
** Set the rotation of the ROLL about Z (DOF #6) axis to velocity
V
*BOUNDARY,TYPE=VELOCITY
10000,6,6,6.2832
**
**the back is constrained only in the Y (2) direction
**DOF to constrain are 2 to 2 (=only 2)and displacement in Y
direction is 0
**review =EULERIAN
*BOUNDARY,TYPE=VELOCITY,REGION TYPE=EULERIAN
BACK2,2,2,0.0
**
******************************************************
************************
** Mass scaling is often used for computational efficiency in
quasi-static
** analyses and in some dynamic analyses that contain a few very
small
** elements that control the stable time increment.
** When using rate-dependent materials, mass scaling is
preferable
** material properties.
*FIXED MASS SCALING, FACTOR=27000.0
******************************************************
************************
*SURFACE INTERACTION,NAME=FRICT
*FRICTION
0.3,
*CONTACT PAIR,INTERACTION=FRICT, CPSET=CONTACT
SURF1,RIGID
**
******************************************************
************************
*FILE OUTPUT, NUMBER INTERVAL=10,
TIMEMARKS=YES
*EL FILE, ELSET=TOP
PEEQ,
*NODE FILE,NSET=REF
U,RF
*OUTPUT, FIELD,NUMBER INTERVAL=10
*ELEMENT OUTPUT
PEEQ,S
*NODE OUTPUT
U,V
*CONTACT OUTPUT, CPSET=CONTACT, VARIABLE=ALL
*OUTPUT,HISTORY,TIME INTERVAL=1.E-4
*NODE OUTPUT,NSET=REF
RF2
***---------------------
*NSET, NSET=QA_TEST_REFN
REF,
*ELSET, ELSET=QA_TEST
TOP,
*NSET, NSET=QA_TEST
BOT,
*OUTPUT, FIELD, TIME MARKS=YES, NUMBER
INTERVAL=10
*ELEMENT OUTPUT, ELSET=QA_TEST
PEEQ,
*NODE OUTPUT, NSET=QA_TEST
U,
*NODE OUTPUT, NSET=QA_TEST_REFN
RF,
*OUTPUT, HIST, FREQ=9999
*ENERGY OUTPUT, VAR=PRESELECT
******
EULER,1,1,0.
BACK,2,2,0.
*ENDSTEP
63
9.3 Johanson Model - Matlab Program
Source Code Included
CD with all source files (nip.m, nip.fig)
The program was developed on a Solaris machine.
Graphics may be different on other platforms.
Required files:
nip.m main program
nip.fig the graphical user interface for this program
SlipStickFun.m two functions representing the state of the powder
slipODE.m ODE for the powder while slip occurs
forceFactor.m force factor equation
torqueFactor.m torque factor equation
modaldlg.fig help menu graphical user interface
johansonModel.jpg image of the system
Run Instructions:
All the files should be located in the same directory.
Once Matlab is up and running there are two methods of stating the program:
a) Click on File Open, choose the directory containing required files, click on
nip.m. This will open a Graphical User Interface (GUI) similar to the one in figure
9.3.
b) Type nip on the Matlab command line. If the local path is the directory
containing the required files a GUI will appear.
Once the GUI is running
64
Fig. 9.3Main User Interface
A pull-down menu contain file operations and help.

65
Fig. 9.4 Help Screen
MATLAB 6.1 SOURCE CODE
nip.m
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Johanson Model
%% Date May 6, 2003
%% Marcin Balicki
%% Ecole Des Mines D'Albi
%% balicki@enstimac.fr
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Description:
%% Application of Johanson Model of rolling Compaction of
powder.
%% Allows for quick analysis effects of parameter variation on
%% powder compaction
%% It provides a means of creating and altering databases of
%% powder properties and process parameters
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Note:
%% The program was developed on a Solaris machine
%% Graphics may be different on other platforms
%%Required files:
%% nip.m This file - main program
%% nip.fig the graphical user interface for this program
%% SlipStickFun.m two functions representing the state of the
powder
%% slipODE.m ODE for the powder while slip occurs
%% forceFactor.m force factor equation
%% torqueFactor.m torque factor equation
%% modaldlg.fig help menu graphical user interface
%% johansonModel.jpg image of the system
%%%%%%%%%
% To DO:
% Option for plotting in main GUI axes or separate figure
% Warning 'save on exit'
%%%%%%%%
%The program saves and imports powder database which is saved
as a matlab file
%with '.pdb' suffix
%The program can export the database as a text file as well.
%The print command prints the user interface, some user
%%%%%%%%
%All the graphs are plotted in a new figure unless the %plot in
same figure
% button
%is selected in which case consecutive plots of the same type will
be plotted in
%one figure
%%%%%%%%
%%%%%%%%
% user input
% S=Gap size(between rolls)
% D=Diameter of Rolls
% K=Compressibility constant
% d=delta - internal friction angle of powder
% Po=initial pressure at the entrance (perpendicular to major
principal stress
% W=phi-wall (roll-powder) friction angle (user enters friction
coefficient -> tan(phi)=mu)
% v=acute angle between the tangent to the roll surface and the
direction of the major principal stress
% can be calculated using W and d
% RW=roll width
% rMin = min range value
% rMax = max range value
%%%%%%%
function varargout = nip(varargin)
% NIP Application M-file for nip.fig
% FIG = NIP launch nip GUI.
% NIP('callback_name', ...) invoke the named callback.
if nargin == 0 % LAUNCH GUI
disp(' ')
disp('---------------------------------------------')
disp('Powder Rolling Compaction - Johanson method')
disp('Marcin Balicki')
disp('Ecole des Mines d Albi - 2003')
disp('---------------------------------------------')
disp(' ')
fig = openfig(mfilename,'reuse');
set(fig,'Tag','Main');
% Generate a structure of handles to pass to callbacks,
and store it.
handles = guihandles(fig);
guidata(fig, handles);
%note the current DB file in use (used in saving)
handles.LastFile='';
%create default powder databse
handles.PowderDB(1).Name='Lactose75';
handles.PowderDB(1).W='0.24';
handles.PowderDB(1).d='39';
handles.PowderDB(1).K='7.75';
handles.PowderDB(1).S='1';
handles.PowderDB(1).D='130';
handles.PowderDB(1).Po='0.06';
handles.PowderDB(1).RW='50';
%create default powder databse
handles.PowderDB(2).Name='AvicelPH102';
handles.PowderDB(2).W='0.28';
handles.PowderDB(2).d='42';
handles.PowderDB(2).K='4.75';
handles.PowderDB(2).S='1';
handles.PowderDB(2).D='130';
handles.PowderDB(2).Po='0.06';
handles.PowderDB(2).RW='50';
%create default powder databse
handles.PowderDB(3).Name='AvicelPH102L';
handles.PowderDB(3).W='0.19';
handles.PowderDB(3).d='42';
handles.PowderDB(3).K='4.75';
handles.PowderDB(3).S='1';
handles.PowderDB(3).D='130';
handles.PowderDB(3).Po='0.06';
handles.PowderDB(3).RW='50';
%create default powder databse
handles.PowderDB(4).Name='AvicelPH101';
handles.PowderDB(4).W='0.29';
handles.PowderDB(4).d='45';
handles.PowderDB(4).K='3.64';
handles.PowderDB(4).S='1';
handles.PowderDB(4).D='130';
handles.PowderDB(4).Po='0.06';
handles.PowderDB(4).RW='50';
%load Avicel powder from the database
%Update powder list that is in the database
UpdateList(handles);

%Set default properties of the plot
set(0,'DefaultLineLineWidth',3);
set(0,'DefaultAxesLineWidth',3);
set(0,'DefaultAxesFontSize',16)
set(0,'DefaultTextFontSize',14)
if nargout > 0
66
varargout{1} = fig;
end
guidata(fig,handles); % store the changes into the guihandle
structure
elseif ischar(varargin{1}) % INVOKE NAMED SUBFUNCTION
OR CALLBACK
try
if (nargout)
[varargout{1:nargout}] =
feval(varargin{:}); % FEVAL switchyard
else
feval(varargin{:}); % FEVAL
switchyard
end
catch
disp(lasterr);
end
end
%| GUIDE automatically appends subfunction prototypes to this
file, and
%| sets objects' callback properties to call them through the
FEVAL
%| switchyard above. This comment describes that mechanism.
%|
%| Each callback subfunction declaration has the following form:
%| <SUBFUNCTION_NAME>(H, EVENTDATA, HANDLES,
VARARGIN)
%|
%| The subfunction name is composed using the object's Tag and
the
%| callback type separated by '_', e.g. 'slider2_Callback',
%| 'figure1_CloseRequestFcn', 'axis1_ButtondownFcn'.
%|
%| H is the callback object's handle (obtained using GCBO).
%|
%| EVENTDATA is empty, but reserved for future use.
%|
%| HANDLES is a structure containing handles of components in
GUI using
%| tags as fieldnames, e.g. handles.figure1, handles.slider2. This
%| structure is created at GUI startup using GUIHANDLES and
stored in
%| the figure's application data using GUIDATA. A copy of the
structure
%| is passed to each callback. You can store additional
information in
%| this structure at GUI startup, and you can change the structure
%| during callbacks. Call guidata(h, handles) after changing your
%| copy to replace the stored original so that subsequent callbacks
see
%| the updates. Type "help guihandles" and "help guidata" for
more
%| information.
%|
%| VARARGIN contains any extra arguments you have passed to
the
%| callback. Specify the extra arguments by editing the callback
%| property in the inspector. By default, GUIDE sets the property
to:
%| <MFILENAME>('<SUBFUNCTION_NAME>', gcbo, [],
guidata(gcbo))
%| Add any extra arguments after the last argument, before the
final
%| closing parenthesis.
% --------------------------------------------------------------------
%most of the following just check if the user input is correct
% --------------------------------------------------------------------
function varargout = rMin_Callback(h, eventdata, handles,
varargin)
user_entry = str2double(get(h,'string'));
if isnan(user_entry)
errordlg('You must enter a numeric value','Bad Input','modal')
end
% --------------------------------------------------------------------
function varargout = rMax_Callback(h, eventdata, handles,
varargin)
user_entry = str2double(get(h,'string'));
if isnan(user_entry)
errordlg('You must enter a numeric value','Bad Input','modal')
end
% --------------------------------------------------------------------
function varargout = varS_Callback(h, eventdata, handles,
varargin)
user_entry = str2double(get(h,'string'));
if isnan(user_entry)
errordlg('You must enter a numeric value','Bad Input','modal')
end
% --------------------------------------------------------------------
function varargout = varD_Callback(h, eventdata, handles,
varargin)
user_entry = str2double(get(h,'string'));
if isnan(user_entry)
errordlg('You must enter a numeric value','Bad Input','modal')
end
% --------------------------------------------------------------------
function varargout = varK_Callback(h, eventdata, handles,
varargin)
user_entry = str2double(get(h,'string'));
if isnan(user_entry)
errordlg('You must enter a numeric value','Bad Input','modal')
end
% --------------------------------------------------------------------
function varargout = vard_Callback(h, eventdata, handles,
varargin)
user_entry = str2double(get(h,'string'));
if isnan(user_entry)
errordlg('You must enter a numeric value','Bad Input','modal')
end
% --------------------------------------------------------------------
function varargout = varPo_Callback(h, eventdata, handles,
varargin)
user_entry = str2double(get(h,'string'));
if isnan(user_entry)
errordlg('You must enter a numeric value','Bad Input','modal')
end
% --------------------------------------------------------------------
function varargout = varW_Callback(h, eventdata, handles,
varargin)
user_entry = str2double(get(h,'string'));
if isnan(user_entry)
errordlg('You must enter a numeric value','Bad Input','modal')
end
% --------------------------------------------------------------------
function varargout = varRW_Callback(h, eventdata, handles,
varargin)
user_entry = str2double(get(h,'string'));
if isnan(user_entry)
errordlg('You must enter a numeric value','Bad Input','modal')
end
% --------------------------------------------------------------------
function varargout = PopMenu_Callback(h, eventdata, handles,
varargin)
%change the required variable visibility
updateVariableVisibility(handles)
% --------------------------------------------------------------------
function varargout = CheckPlot_Callback(h, eventdata, handles,
varargin)
67
%Displays the Plot On Same Axes status
if get(h,'Value')==1
set(h,'String', 'Plot On Same Axes - ON');
set(h,'BackgroundColor', [0.38,0.75,0.92]);
else
set(h,'String', 'Plot On Same Axes - OFF');
set(h,'BackgroundColor', [0.70,0.70,0.70]);
end
% --------------------------------------------------------------------
function fig=newFigure(handles,figName)
%returns the handle to the figure used for plotting
%function opens a new figure for the plot
%can also be made to use the axes of the gui
%by checking the state of a button
%but this would not allow editing of graphs
%if no figures exist create one
if get(0,'Children')== 0;
fig=figure('name',figName);
%but if they exist and plot in same figure is off
%create a new figure with the name passed in to the function
elseif get(handles.CheckPlot,'Value') == 0;
fig=figure('name',figName);
hold off %shut off same axes plotting
%If figure exist and the plot should be on same axes
else
%get all the figures with figName
[flag,figs] = figflag(figName);
%if none then create one
if flag==0;
fig=figure('name',figName);
%if they exist then make one of them the current one
else
fig=figs(size(figs,2)); %get the last figure that matches the
figName
hold on %and force it to plot on the same axes.
end
end
% --------------------------------------------------------------------
function updateVariableVisibility(handles)
% Determine the current choice and change the input fields
visibility
choices
%returns the number of the choice (first position = 1)
%set all to off
%W is the friciton coefficient
set([handles.varW,
handles.varS,
handles.varD,
handles.varK,
handles.vard,
handles.varPo,
handles.varRW],'Visible', 'off');

set(handles.rUnit,'String','');
set(handles.rVar,'String','');
set(handles.rMin,'String','0');
set(handles.rMax,'String','100');
switch pop_Selected
case 1
%nothing selected turn all on
set([handles.varW,
handles.varS,
handles.varD,
handles.varK,
handles.vard,
handles.varPo,
handles.varRW],'Visible', 'on');
set(handles.rUnit,'String','');
set(handles.rVar,'String','');
set(handles.rMin,'String','0');
set(handles.rMax,'String','100');

case 2
%nipAngle
set([handles.varW,
handles.varS,
handles.varD,
handles.varK,
handles.vard],'Visible', 'on');
set(handles.rUnit,'String','Deg');
set(handles.rVar,'String','Angular Position');
set(handles.rMin,'String','0');
set(handles.rMax,'String','60');
case 3
% Nip Angle Vs Internal Friction Angle
set([handles.varW,
handles.varS,
handles.varD,
handles.varK],'Visible', 'on');
set(handles.rUnit,'String','Deg');
set(handles.rVar,'String','Internal Friction Angle');
set(handles.rMin,'String','20');
set(handles.rMax,'String','70');
case 4
% Nip Angle Vs Wall Friction
set([handles.varS,
handles.varD,
handles.varK,
handles.vard],'Visible', 'on');
set(handles.rUnit,'String','');
set(handles.rVar,'String','Friction Coefficient');
set(handles.rMin,'String','0.1');
set(handles.rMax,'String','0.8');
case 5
% Nip Angle Vs Compressibility
set([handles.varW,
handles.varS,
handles.varD,
handles.vard],'Visible', 'on');
set(handles.rUnit,'String','');
set(handles.rVar,'String','Compressibility (K)');
set(handles.rMin,'String','1');
set(handles.rMax,'String','12');
case 6
% Nip Angle Vs Roll Gap
set([handles.varW,
handles.varD,
handles.varK,
handles.vard],'Visible', 'on');
set(handles.rUnit,'String','mm');
set(handles.rVar,'String','Roll Gap');
set(handles.rMin,'String','0.4');
set(handles.rMax,'String','2.5');
case 7
% Pressure Distribution in Nip Region
set([handles.varW,
handles.varS,
handles.varD,
handles.varK,
handles.vard,
handles.varPo],'Visible', 'on');
set(handles.rUnit,'String','Deg');
set(handles.rVar,'String','Angular Postition');
set(handles.rMin,'String','0');
set(handles.rMax,'String','10');
case 8
% Maximum Pressure Vs Nip Angle
set([handles.varW,
handles.varS,
68
handles.varD,
handles.varK,
handles.vard,
handles.varPo],'Visible', 'on');
set(handles.rUnit,'String','Deg');
set(handles.rVar,'String','Nip Angle');
set(handles.rMin,'String','7');
set(handles.rMax,'String','12');
case 9
% Maximum Pressure Vs Po
set([handles.varW,
handles.varS,
handles.varD,
handles.varK,
handles.vard],'Visible', 'on');
set(handles.rUnit,'String','MPa');
set(handles.rVar,'String','Feed Pressure');
set(handles.rMin,'String','0');
set(handles.rMax,'String','2');
case 10
% Maximum Pressure Vs Internal Friction Angle
set([handles.varW,
handles.varS,
handles.varD,
handles.varK,
handles.varPo],'Visible', 'on');
set(handles.rUnit,'String','Deg');
set(handles.rVar,'String','Internal Friction Angle');
set(handles.rMin,'String','10');
set(handles.rMax,'String','60');
case 11
% Maximum Pressure Vs Wall Friction
set([handles.varS,
handles.varD,
handles.varK,
handles.vard,
handles.varPo],'Visible', 'on');
set(handles.rUnit,'String','');
set(handles.rVar,'String','Friction Coefficient');
set(handles.rMin,'String','0.1');
set(handles.rMax,'String','0.8');
case 12
% Maximum Pressure Vs Roll Gap
set([handles.varW,
handles.varD,
handles.varK,
handles.vard,
handles.varPo],'Visible', 'on');
set(handles.rUnit,'String','mm');
set(handles.rVar,'String','Roll Gap');
set(handles.rMin,'String','0.4');
set(handles.rMax,'String','2.5');
case 13
% Maximum Pressure Vs Compressibility
set([handles.varW,
handles.varS,
handles.varD,
handles.vard,
handles.varPo],'Visible', 'on');
set(handles.rUnit,'String','');
set(handles.rVar,'String','Compressibility (K)');
set(handles.rMin,'String','1');
set(handles.rMax,'String','12');
case 14
% Roll Force Vs Roll Gap
set([handles.varW,
handles.varD,
handles.varK,
handles.vard,
handles.varPo,
handles.varRW],'Visible', 'on');
set(handles.rUnit,'String','mm');
set(handles.rVar,'String','Roll Gap');
set(handles.rMin,'String','0.4');
set(handles.rMax,'String','2.5');
case 15
% Roll Torque Vs RollGap
set([handles.varW,
handles.varD,
handles.varK,
handles.vard,
handles.varPo,
handles.varRW],'Visible', 'on');
set(handles.rUnit,'String','mm');
set(handles.rVar,'String','Roll Gap');
set(handles.rMin,'String','0.4');
set(handles.rMax,'String','2.5');
otherwise
disp('Unknown method.')
end

% --------------------------------------------------------------------
function varargout = CalcButton_Callback(h, eventdata, handles,
varargin)
%runs the chosen ploting function
%returns the number of the choice (first position = 1)
%After the calculate button was pressed the pop menu value is
retrieved
%and appropriate function is called
switch pop_Selected
case 1
disp('CHOOSE PLOT')
case 2
NipAngle(handles)
case 3
NipAngleVsInternalFrictionAngle(handles)
case 4
NipAngleVsWallFriction(handles)
case 5
NipAngleVsCompressibility(handles)
case 6
NipAngleVsRollGap(handles)
case 7
PressureDistribution(handles)
case 8
MaximumPressureVsNipAngle(handles)
case 9
MaximumPressureVsPo(handles)
case 10
MaximumPressureVsInternalfFrictionAngle(handles)
case 11
MaximumPressureVsWallFriction(handles)
case 12
MaximumPressureVsRollGap(handles)
case 13
MaximumPressureVsCompressibility(handles)
case 14
RollForceVsRollGap(handles)
case 15
RollTorqueVsRollGap(handles)
otherwise
disp('Unknown method.')
end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Johanson Model
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Nip Angle
% Nip Angle Vs Internal Friction Angle
% Nip Angle Vs Wall Friction
% Nip Angle Vs Compressibility
% Nip Angle Vs Roll Gap
% Pressure Distribution in Nip Region
% Maximum Pressure Vs Nip Angle
% Maximum Pressure Vs Po
69
% Maximum Pressure Vs Internal Friction Angle
% Maximum Pressure Vs Wall Friction
% Maximum Pressure Vs Roll Gap
% Maximum Pressure Vs Compressibility
% Roll Force VsRollGap
% Roll Torque VsRollGap
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Extracts user input from the gui
%getUserVarInput
%all variables are global
function [] = getUserVarInput(handles)
%set global variables used in functions.
global d2r r2d D S W d K v u RW Po rMin rMax
%get all the variables
%angle variables are converted to radiants
d2r=pi/180; % conversion factor degrees into radiants
r2d=180/pi; % conversion factor radiants into degrees
%%%%%%%%
% S=Gap size(between rolls)
% D=Diameter of Rolls
% K=Compressibility constant
% d=delta - internal friction angle of powder
% Po=initial pressure at the entrance (perpendicular to major
principal stress
% W=phi - wall (roll-powder) friction angle (attained from friction
coefficient tan(phi)=mu)
% v=cute angle between the tangent to the roll surface and the
direction of the major principal stress
% can be calculated using W and d
% RW=roll width
% rMin = min range value
% rMax = max range value
%%%%%%%
S = str2double(get(handles.varS,'String'));
D = str2double(get(handles.varD,'String'));
K = str2double(get(handles.varK,'String'));
d = str2double(get(handles.vard,'String'))*d2r;
Po = str2double(get(handles.varPo,'String'));
RW=str2double(get(handles.varRW,'String')); %Roll
width
u=(pi/4)-(d/2);
W=str2double(get(handles.varW,'String'));
%w at this moment is the fricition coefficient
%take atan to get the wall friction angle in radiants
W=atan(W);
%calculate v which is used all equations
v=(pi-asin(sin(W)/sin(d)) -W)/2;
rMin = str2double(get(handles.rMin,'String'));
rMax = str2double(get(handles.rMax,'String'));
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function a=getAplha(handles)
%Solve for alpha
%calls fsolve function which uses two functions(slip, stick)
%contained in SlipStickFun.m and solves for the point of their
intersection
%handles is passed to the function for formality.
%all variables are global
%set global variables used in functions.
global d2r r2d D S W d K v u RW Po rMin rMax
%call fsolve mysystem is the function containing the two
equations.
InitialGuess = [.1;.1];
Options = optimset('Display','off');
XY = fsolve(@SlipStickFun, InitialGuess, Options);
%XY returns the answer, the x component is the angle alpha
a=XY(1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function NipAngle(handles)
%NIP ANGLE
%plots slip and stick pressure gradients
%point of intersection is the nip angle
disp('NipAngle')
%set global variables used in functions outside of this file.
global d2r r2d D S d K v W u Po RW rMin rMax
%get all the variables
getUserVarInput(handles);
a=getAplha(handles)
%value of y when x = a
ay=(K.*(2.*cos(a)-1-S/D).*tan(a))./((D/2).*((1+S/D-
cos(a)).*cos(a)));
% x represents theta
x=linspace(rMin,rMax*d2r);
fn1=(4.*((pi/2)-x-v).*tan(d))./(D/2.*(1+S/D-
cos(x)).*(cot(((x+v+(pi/2))/2)-u)-cot(((x+v+pi/2)/2)+u)));
fn2=(K.*(2.*cos(x)-1-S/D).*tan(x))./((D/2).*((1+S/D-
cos(x)).*cos(x)));
%straight line
z=0;
%get a new or correct figure for plotting
figure(newFigure(handles,'NIP ANGLE'));
plot(x*r2d,fn1,x*r2d,fn2,'k--',x*r2d,z,'k--',a*r2d,ay,'ro');
title('Nip Angle (\alpha)');
legend('SLIP','NO SLIP');
legend('boxoff')
grid off;
%prints variables used on the graph:
TPosX=(max(x)*r2d*0.6); % returns the maximum value in x
direction * factor
TPosY=max(fn1)*0.8; % returns the maximum value in y
direction * factor
TSp=TPosY*0.09;
text(a*r2d+(TPosX*0.05),ay+TSp,0,['\alpha = ',num2str(a*r2d),'
Deg']);
text(TPosX,TPosY,0, ['S= ',num2str(S),' mm']);
text(TPosX,TPosY-TSp,0, ['D= ',num2str(D),' mm']);
text(TPosX,TPosY-TSp*2,0, ['K= ',num2str(K)]);
text(TPosX,TPosY-TSp*3,0, ['\delta= ',num2str(d*r2d),' Deg']);
text(TPosX,TPosY-TSp*4,0, ['\mu= ',num2str(tan(W))]);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function NipAngleVsInternalFrictionAngle(handles)
%Nip Angle Vs Internal Friction Angle
%
disp('NipAngleVsInternalFrictionAngle')
global d2r r2d D S d K v W u Po RW rMin rMax
%get all the variables
getUserVarInput(handles);
i=1;
for M=rMin:1:rMax
d=M*d2r; %get internal friction angle
u=(pi/4)-(d/2); %calculate a new u
%calculate v which is used all equations
v=(pi-asin(sin(W)/sin(d)) -W)/2;
N(i,1)=M;
N(i,2)=getAplha(handles)*r2d; %get alpha and turn into degrees
for plot
i=i+1;
end
figure(newFigure(handles,'Nip Angle Vs Internal Friction Angle'));
70
plotA=plot(N(:,1),N(:,2));
title('Nip Angle Vs Internal Friction Angle');
xlabel('Internal Friction Angle [Deg]');
ylabel('Nip Angle(\alpha) [Deg]');
grid off;
xData = get(plotA,'XData'); % Get the plotted data
yData = get(plotA,'YData');
% returns the maximum value in x direction
TPosX=(min(xData)) + (max(xData)-min(xData))*0.2;
TPosY=(max(yData))*0.9; % returns the maximum value in
y direction
TSp=TPosY*0.07;
text(TPosX,TPosY,0, ['S= ',num2str(S),' mm']);
text(TPosX,TPosY-TSp,0, ['D= ',num2str(D),' mm']);
text(TPosX,TPosY-TSp*2,0, ['K= ',num2str(K)]);
text(TPosX,TPosY-TSp*3,0, ['\mu= ',num2str(tan(W))]);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function NipAngleVsWallFriction(handles)
%Nip Angle Vs Wall Friction Angle
%
%Phi=W=wall friction angle user inputs the friction coefficient
% --------------------------------------------------------------------
disp('NipAngleVsWallFriction')
global d2r r2d D S d K v W u Po RW rMin rMax
%get all the variables
getUserVarInput(handles);
%convert ranges into wall friction angle in radiants
rMin=atan(rMin)
rMax=atan(rMax)
%number of iterations
step=(rMax-rMin)/40;
i=1;
for M=rMin:step:rMax
W=M;
v=(pi-asin(sin(W)/sin(d)) -W)/2;
N(i,1)=tan(M); %convert wall friction angle to friction
coefficient
N(i,2)=getAplha(handles)*r2d; %get alpha and turn into degrees
for plot
i=i+1
end
figure(newFigure(handles,'Nip Angle Vs Wall Friction'));
plotA=plot(N(:,1),N(:,2));
title('Nip Angle Vs Wall Friction');
xlabel('Wall Friction Coefficient (\mu)');
ylabel('Nip Angle (\alpha) [Deg]');
xData = get(plotA,'XData'); % Get the plotted data
yData = get(plotA,'YData');
TPosX=(max(xData))*0.2; % returns the maximum value in
x direction
TPosY=(max(yData))*0.9; % returns the maximum value in
y direction
TSp=TPosY*0.07;
%print the variables unique to this plot
text(TPosX,TPosY,0, ['S= ',num2str(S), ' mm']);
text(TPosX,TPosY-TSp,0, ['D= ',num2str(D), ' mm']);
text(TPosX,TPosY-TSp*2,0, ['K= ',num2str(K)]);
text(TPosX,TPosY-TSp*3,0, ['\delta= ',num2str(d*r2d), ' Deg']);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function NipAngleVsCompressibility(handles)
%Nip Angle Vs Compressibility
%
% --------------------------------------------------------------------
disp('NipAngleVsCompressibility')
global d2r r2d D S d K v W u Po RW rMin rMax
%get all the variables
getUserVarInput(handles);
step=(rMax-rMin)/20;
i=1;
for M=rMin:step:rMax;
K=M;
N(i,1)=K;
N(i,2)=getAplha(handles)*r2d; %get alpha and turn into degrees
for plot
i=i+1
end
figure(newFigure(handles,'Nip Angle Vs Compressibility'));
plotA=plot(N(:,1),N(:,2));
title('Nip Angle Vs Compressibility');
xlabel('K - Copmressibility ');
ylabel('Nip Angle (\alpha) [Deg]');
xData = get(plotA,'XData'); % Get the plotted data
yData = get(plotA,'YData');
TPosX=(max(xData))*0.8; % returns the maximum value in
x direction
TPosY=(max(yData))*0.9; % returns the maximum value in
y direction
TSp=TPosY*0.07;
text(TPosX,TPosY,0, ['S= ',num2str(S), ' mm']);
text(TPosX,TPosY-TSp,0, ['D= ',num2str(D), ' mm']);
text(TPosX,TPosY-TSp*2,0, ['\delta= ',num2str(d*r2d),' Deg']);
text(TPosX,TPosY-TSp*3,0, ['\mu= ',num2str(tan(W))]);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function NipAngleVsRollGap(handles)
% Nip Angle Vs Roll Gap
%
% --------------------------------------------------------
disp('NipAngleVsRollGap')
global d2r r2d D S d K v W u Po RW rMin rMax
%get all the variables
getUserVarInput(handles);
step=(rMax-rMin)/20;
i=1
for M=rMin:step:rMax
S=M;
N(i,1)=S;
N(i,2)=getAplha(handles)*r2d; %get alpha and turn into degrees
for plot
i=i+1
end
figure(newFigure(handles,'Nip Angle Vs Roll Gap'));
plotA=plot(N(:,1),N(:,2));
title('Nip Angle Vs Roll Gap');
xlabel('Roll Gap [mm]');
ylabel('Nip Angle (\alpha) [Deg]');
xData = get(plotA,'XData'); % Get the plotted data
yData = get(plotA,'YData');
TPosX=(max(xData))*0.2; % returns the maximum value in
x direction
TPosY=(min(yData)) + (max(yData)-min(yData))*0.9; %returns
the maximum value in y direction
TSp=(max(yData)-min(yData))*0.07;
text(TPosX,TPosY,0, ['D= ',num2str(D),' mm']);
text(TPosX,TPosY-TSp,0, ['K= ',num2str(K)]);
text(TPosX,TPosY-TSp*2,0, ['\delta= ',num2str(d*r2d),' Deg']);
text(TPosX,TPosY-TSp*3,0, ['\mu= ',num2str(tan(W))]);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function PressureDistribution(handles)
%PRESSURE DISTRIBUTION
%Stress vs Angular position
%Assumption - normal stress is equal to pressure excerted on the
71
powder by roll
% --------------------------------------------------------------------
disp('PressureVsAngularPosition')
global d2r r2d D S d K v W u Po RW rMin rMax
%get all the variables
getUserVarInput(handles);
%get the nip angle
a=getAplha(handles);
%%%%%
%Pressure distribution
%Solve the differential equation of powder behavior in SLIP to get
pressure at alpha
%initial condition - feed stress (pressure) at x0
so=[Po/(1-sin(d))];
%point of application of feed pressure
x0=(pi/2)-v;
%variable used in ODE solver, the limits of analysis
%first item (limit) is the initial condition point, the second is the
limit-0
xspan=[x0,0];
%Runga-Kutta ODE solver
sol=ode45(@slipODE,xspan,so);
% extract the stress at nip angle alpha
sa = deval(sol,a);
%Plot the pressure distribution equation
%ranges are in degrees so convert
x=linspace(rMin*d2r,rMax*d2r);
%pressure distirbution (No slip) equation with initial condition at
angle a
s=sa.*((1+S/D-cos(a).*cos(a))./(1+S/D-cos(x).*cos(x))).^K;
figure(newFigure(handles,'Pressure Distribution'));
plotA=plot(x*r2d,s);
title('Pressure Distribution in Nip Region');
xlabel('Angular Position [Deg]');
ylabel('Pressure [MPa]');
xData = get(plotA,'XData'); % Get the plotted data
yData = get(plotA,'YData');
TPosX=(max(xData))*0.7; % returns the maximum value in
x direction
TPosY=(max(yData))*0.9; % returns the maximum value in
y direction
TSp=TPosY*0.07;
text(TPosX,TPosY,0, ['S= ',num2str(S), ' mm']);
text(TPosX,TPosY-TSp,0, ['D= ',num2str(D), ' mm']);
text(TPosX,TPosY-TSp*2,0, ['Po= ',num2str(Po), ' Mpa']);
text(TPosX,TPosY-TSp*3,0, ['K= ',num2str(K)]);
text(TPosX,TPosY-TSp*4,0, ['\delta= ',num2str(d*r2d), ' Deg']);
text(TPosX,TPosY-TSp*5,0, ['\mu= ',num2str(tan(W))]);
text(TPosX,TPosY-TSp*6,0, ['\alpha= ',num2str(a*r2d), ' Deg']);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function MaximumPressureVsNipAngle(handles)
%
%EFFECTS OF NIP ANGLE ON PRESSURE AT ANGULAR
DISPLACEMENT 0
%Pressure vs Nip Angle
% --------------------------------------------------------
disp('PressureVsNipAngle')
global d2r r2d D S d K v W u Po RW rMin rMax
%get all the variables
getUserVarInput(handles);
%%%%%
%Solve the differential equation in slip region
%For each alpha
%From the ODE solutions get pressure at each alpha
%Using the Initial condition find what is the value
%of sigma at angular position 0, then plot
%initial condition - feed stress (pressure) at x0
so=[Po/(1-sin(d))];
%point of application of feed pressure
x0=(pi/2)-v;
%variable used in ODE solver, the limits of analysis
%first item (limit) is the initial condition point, the second is the
limit-0
xspan=[x0,0];
%Runga-Kutta ODE solver
sol=ode45(@slipODE,xspan,so);
% extract the stress at nip angle alpha
sa = deval(sol,a);
%create an array that will hold alpha
%rmin and max are in deg at this moment
Alpha=linspace(rMin,rMax);
%for all the elements in Alpha get s
%at position 0
x=0;
for M=1:1:(size(Alpha,2))
N(M,1)=Alpha(M);
a=Alpha(M)*d2r;
sa = deval(sol,a); %pressure at alpha from the slip equation
%the pressure at position 0 = maximum pressure.
N(M,2)=sa.*((1+S/D-cos(a).*cos(a))./(1+S/D-
cos(x).*cos(x))).^K;
end
figure(newFigure(handles,'Maximum Pressure Vs Nip Angle'));
plotA=plot(N(:,1),N(:,2));
title('Maximum Pressure Vs Nip Angle');
xlabel('Nip Angle(\alpha) [Deg]');
ylabel('Maximum Pressure [MPa]');
%grid;
xData = get(plotA,'XData'); % Get the plotted data
yData = get(plotA,'YData');
TPosX=rMin+(rMax-rMin)*0.2; % returns the maximum
value in x direction
TPosY=(max(yData))*0.8; % returns the maximum value in
y direction
TSp=TPosY*.07;
text(TPosX,TPosY,0, ['S= ',num2str(S), ' mm']);
text(TPosX,TPosY-TSp,0, ['D= ',num2str(D), ' mm']);
text(TPosX,TPosY-TSp*2,0, ['Po= ',num2str(Po), ' Mpa']);
text(TPosX,TPosY-TSp*3,0, ['K= ',num2str(K)]);
text(TPosX,TPosY-TSp*5,0, ['\mu= ',num2str(tan(W))]);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function MaximumPressureVsPo(handles)
%EFFECTS OF ENTRY PRESSURE ON PRESSURE AT
DISPLACEMENT 0
%Pressure0vsPo
%opens a new plot window
% ---------------------------------------------------------------------
disp('PressureVsPo')
global d2r r2d D S d K v W u Po RW rMin rMax
%get all the variables
getUserVarInput(handles);
%get the nip angle
a=getAplha(handles);
%%%%%
%for each Po calculate a new s!
%calculate so
72
%Solve the differential equation in slip region
%For each alpha
%From the ODE solutions get pressure at each alpha
%Using the Initial condition find what is the value
%of sigma at angular position 0, then plot
%point of application of feed pressure
x0=(pi/2)-v;
%first item (limit) is the initial condition point, the second is the
limit-0
xspan=[x0,0];
NumOfEl=100;
%create an array that will hold the different Po values
PoValues=linspace(rMin,rMax,NumOfEl);
%for all the elements in Alpha get s at position 0
x=0;
for M=1:1:(size(PoValues,2));
%initial condition - feed stress (pressure) at x0
so=[PoValues(M)/(1-sin(d))];
%Runga-Kutta ODE solver
sol=ode45(@slipODE,xspan,so);
N(M,1)=PoValues(M);
sa = deval(sol,a);
N(M,2)=sa.*((1+S/D-cos(a).*cos(a))./(1+S/D-
cos(x).*cos(x))).^K;
end
figure(newFigure(handles,'Maximum Pressure Vs Po'));
plotA=plot(N(:,1),N(:,2));
title('Maximum Pressure Vs Feed Pressure (Po)');
xlabel('Feed Pressure (Po) [MPa] ');
ylabel('Maximum Pressure [MPa]');
xData = get(plotA,'XData'); % Get the plotted data
yData = get(plotA,'YData');
TPosX=(max(xData))*0.2; % returns the maximum value in
x direction
TPosY=(max(yData))*0.8; % returns the maximum value in
y direction
TSp=TPosY*.07;
text(TPosX,TPosY,0, ['S= ',num2str(S), ' mm']);
text(TPosX,TPosY-TSp,0, ['D= ',num2str(D), ' mm']);
text(TPosX,TPosY-TSp*2,0, ['K= ',num2str(K)]);
text(TPosX,TPosY-TSp*3,0, ['\delta= ',num2str(d*r2d), ' Deg']);
text(TPosX,TPosY-TSp*4,0, ['\mu= ',num2str(tan(W))]);
text(TPosX,TPosY-TSp*5,0, ['\alpha= ',num2str(a*r2d), ' Deg']);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function MaximumPressureVsInternalfFrictionAngle(handles)
%Maximum Pressure (at Position 0) vs Internal Friction Angle
%
% ---------------------------------------------------------------------
disp('Pressure0VsInternalfFrictionAngle')
global d2r r2d D S d K v W u Po RW rMin rMax
%get all the variables
getUserVarInput(handles);
%%%%%
%for each d calculate new alpha!
%calculate so
%Solve the differential equation in slip region
%For each alpha
%From the ODE solutions get pressure at each alpha
%Using the Initial condition find what is the value
%of sigma at angular position 0, then plot
step=(rMax-rMin)/40;
i=1;
for M=rMin:step:rMax
d=M*d2r; %get internal friction angle in redients
u=(pi/4)-(d/2);
%calculate v which is used all equations
v=(pi-asin(sin(W)/sin(d)) -W)/2;
a=getAplha(handles); %get the nip angle
%point of application of feed pressure
x0=(pi/2)-v;
%initial condition - feed stress (pressure) at x0
so=[Po/(1-sin(d))];
%variable used in ODE solver, the limits of analysis
%first item (limit) is the initial condition point, the second is the
limit-0
xspan=[x0,0];
sol=ode45(@slipODE,xspan,so);
% extract the stress at nip angle alpha
sa = deval(sol,a);
N(i,1)=M; %the internal friciton angle in degrees
N(i,2)=sa.*((1+S/D-cos(a).*cos(a))./(1+S/D-
cos(x).*cos(x))).^K;
i=i+1;

end
figure(newFigure(handles,'Maximum Pressure Vs Internal Fricition
Angle'));
plotA=plot(N(:,1),N(:,2));
grid off;
title('Maximum Pressure Vs Internal Fricition Angle');
xlabel('Internal Fricition Angle [Deg]');
ylabel('Maximum Pressure [MPa]');
xData = get(plotA,'XData'); % Get the plotted data
yData = get(plotA,'YData');
TPosX=(max(xData))*0.2; % returns the maximum value in
x direction
TPosY=(max(yData))*0.8 ; % returns the maximum value in
y direction
TSp=TPosY*.07;
text(TPosX,TPosY,0, ['S= ',num2str(S), ' mm']);
text(TPosX,TPosY-TSp,0, ['D= ',num2str(D), ' mm']);
text(TPosX,TPosY-TSp*2,0, ['Po= ',num2str(Po), ' MPa']);
text(TPosX,TPosY-TSp*3,0, ['K= ',num2str(K)]);
text(TPosX,TPosY-TSp*4,0, ['\mu= ',num2str(tan(W))]);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function MaximumPressureVsWallFriction(handles)
%Maximum Pressure (at Position 0) vs Wall Friction Angle
% ---------------------------------------------------------------------
disp('MaximumPressureVsWallfFriction')
global d2r r2d D S d K v W u Po RW rMin rMax
%get all the variables
getUserVarInput(handles);
%%%%%
%for each phi(W) calculate new alpha!
%calculate so
%Solve the differential equation in slip region
%For each alpha
%From the ODE solutions get pressure at each alpha
%Using the Initial condition find what is the value
%of sigma at angular position 0, then plot
%angular position
%maximum pressure is at 0
x=0;
%convert coefficient ranges into wall friction angle in radiants
rMin=atan(rMin);
rMax=atan(rMax);
step=(rMax-rMin)/40;
i=1;
so=[Po/(1-sin(d))];
73
for M=rMin:step:rMax
W=M;
v=(pi-asin(sin(W)/sin(d)) -W)/2;
a=getAplha(handles);
x0=(pi/2)-v;
%variable used in ODE solver, the limits of analysis
%first item (limit) is the initial condition point, the second is the
limit-0
xspan=[x0,0];
sol=ode45(@slipODE,xspan,so);
% extract the stress at nip angle alpha
sa = deval(sol,a);
N(i,1)=tan(M); %convert wall friction angle to friction
coeffcient
N(i,2)=sa.*((1+S/D-cos(a).*cos(a))./(1+S/D-
cos(x).*cos(x))).^K;
i=i+1;

end
figure(newFigure(handles,'Maxiumum Pressure Vs Wall
Fricition'));
plotA=plot(N(:,1),N(:,2));
title('Maxiumum Pressure Vs Wall Fricition');
xlabel('Wall Fricition Coefficient (\mu)');
ylabel('Maxiumum Pressure [MPa]');
xData = get(plotA,'XData'); % Get the plotted data
yData = get(plotA,'YData');
TPosX=(max(xData))*0.2; % returns the maximum value in
x direction
TPosY=(max(yData))*0.8; % returns the maximum value in
y direction
TSp=TPosY*.07;
text(TPosX,TPosY,0, ['S= ',num2str(S), ' mm']);
text(TPosX,TPosY-TSp,0, ['D= ',num2str(D), ' mm']);
text(TPosX,TPosY-TSp*2,0, ['Po= ',num2str(Po), ' MPa']);
text(TPosX,TPosY-TSp*3,0, ['K= ',num2str(K)]);
text(TPosX,TPosY-TSp*4,0, ['\delta= ',num2str(d*r2d), ' Deg']);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function MaximumPressureVsRollGap(handles)
%Pressure at Position 0 vs Roll Gap
%
% ---------------------------------------------------------------------
disp('MaxmimumPressureVsRollGap')
global d2r r2d D S d K v W u Po RW rMin rMax
%get all the variables
getUserVarInput(handles);
%initial condition
so=[Po/(1-sin(d))];
%%%%%
%for each S calculate new alpha!
%calculate so
%Solve the differential equation in slip region
%For each alpha
%From the ODE solutions get pressure at each alpha
%Using the Initial condition find what is the value
%of sigma at angular position 0, then plot
%initial condition - feed stress (pressure) at x0
so=[Po/(1-sin(d))];
%point of application of feed pressure
x0=(pi/2)-v;
%variable used in ODE solver, the limits of analysis
%first item (limit) is the initial condition point, the second is the
limit-0
xspan=[x0,0];
i=1;
%maximum pressure is at 0
x=0;
step=(rMax-rMin)/40;
for M=rMin:step:rMax
S=M;
a=getAplha(handles);
%Runga-Kutta ODE solver
sol=ode45(@slipODE,xspan,so);
% extract the pressure at nip angle alpha
sa = deval(sol,a);
N(i,1)=M;
N(i,2)=sa.*((1+S/D-cos(a).*cos(a))./(1+S/D-
cos(x).*cos(x))).^K;
i=i+1;

end
figure(newFigure(handles,'Maximum Pressure Vs Roll Gap'));
%Fig=figure;
%set(Fig,'Name','Pressure at Position 0 Vs Roll Gap')
plotA=plot(N(:,1),N(:,2));
title('Maximum Pressure Vs Roll Gap');
xlabel('Roll Gap [mm]');
ylabel('Maximum Pressure [MPa]');
%grid;
xData = get(plotA,'XData'); % Get the plotted data
yData = get(plotA,'YData');
TPosX=(max(xData))*0.6; % returns the maximum value in
x direction
TPosY=(max(yData))*0.8; % returns the maximum value in
y direction
TSp=TPosY*.07;
text(TPosX,TPosY-TSp,0, ['D= ',num2str(D), ' mm']);
text(TPosX,TPosY-TSp*2,0, ['Po= ',num2str(Po), ' MPa']);
text(TPosX,TPosY-TSp*3,0, ['K= ',num2str(K)]);
text(TPosX,TPosY-TSp*4,0, ['\delta= ',num2str(d*r2d), ' Deg']);
text(TPosX,TPosY-TSp*5,0, ['\mu= ',num2str(tan(W))]);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function MaximumPressureVsCompressibility(handles)
%Maximum Pressure at Position 0 vs Roll Diameter
%
% ---------------------------------------------------------------------
global d2r r2d D S d K v W u Po RW rMin rMax
%get all the variables
getUserVarInput(handles);
%intial condition
so=[Po/(1-sin(d))];
%%%%%
%for each S calculate new alpha!
%calculate so
%Solve the differential equation in slip region
%For each alpha
%From the ODE solutions get pressure at each alpha
%Using the Initial condition find what is the value
%of sigma at angular position 0, then plot
%initial condition - feed stress (pressure) at x0
so=[Po/(1-sin(d))];
%point of application of feed pressure
x0=(pi/2)-v;
%variable used in ODE solver, the limits of analysis
%first item (limit) is the initial condition point, the second is the
limit-0
xspan=[x0,0];
i=1;
%maximum pressure is at 0
x=0;
step=(rMax-rMin)/20;
for M=rMin:step:rMax
K=M;
74
a=getAplha(handles);
%Runga-Kutta ODE solver
sol=ode45(@slipODE,xspan,so);
% extract the pressure at nip angle alpha
sa = deval(sol,a);
N(i,1)=K;
N(i,2)=sa.*((1+S/D-cos(a).*cos(a))./(1+S/D-
cos(x).*cos(x))).^K;
i=i+1
end
figure(newFigure(handles,'Maximum Pressure Vs
Compressibility'));
plotA=plot(N(:,1),N(:,2));
title('Maximum Pressure Vs Compressibility');
xlabel('Compressibility (K)');
ylabel('Maximum Pressure [MPa]');
xData = get(plotA,'XData'); % Get the plotted data
yData = get(plotA,'YData');
TPosX=(max(xData))*0.2; % returns the maximum value in
x direction
TPosY=(max(yData))*0.8; % returns the maximum value in
y direction
TSp=TPosY*.07;
text(TPosX,TPosY-TSp,0, ['S= ',num2str(S), ' mm']);
text(TPosX,TPosY-TSp*2,0, ['D= ',num2str(D), ' mm']);
text(TPosX,TPosY-TSp*3,0, ['Po= ',num2str(Po), ' MPa']);
text(TPosX,TPosY-TSp*4,0, ['\delta= ',num2str(d*r2d),' Deg']);
text(TPosX,TPosY-TSp*5,0, ['\mu= ',num2str(tan(W))]);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function RollForceVsRollGap(handles)
%ROLL FORCE
%
% ---------------------------------------------------------------------
disp('RollForce')
global d2r r2d D S d K v W u Po RW rMin rMax
%get all the variables
getUserVarInput(handles);
%Solve for Maximum pressure-Pm which occurs at position 0
%-same as other maximum pressures
%integrate the force factor equation from 0 to alpha
%evaluate the Roll force equation
%plot it versus roll gap
%initial condition - feed stress (pressure) at x0
so=[Po/(1-sin(d))];
%point of application of feed pressure
x0=(pi/2)-v;
%variable used in ODE solver, the limits of analysis
%first item (limit) is the initial condition point, the second is the
limit-0
xspan=[x0,0];
%force factor function
%f=inline('(((S/D)/((1+S/D-cos(x))*cos(x)))^K)*cos(x)')
i=1;
x=0; %location of maximum stress.
%for each gap size
%calc a
%solve ODE
%get stress at angle a
%calculate stress at position 0
step=(rMax-rMin)/20;
for M=rMin:step:rMax
N(i,1)=M;
S=M; %Roll Gap
a=getAplha(handles);
%Runga-Kutta ODE solver
sol=ode45(@slipODE,xspan,so);
% extract the stress at nip angle alpha
sa = deval(sol,a);
Pm=sa.*((1+S/D-cos(a).*cos(a))./(1+S/D-cos(x).*cos(x))).^K;
%calculate Force factor F by integrating from 0 to a
%Roll Force in newtons
%this needs to be investigated not sure of conversion) /100
N(i,2)=(Pm*RW*D*0.5*F)/100;
i=i+1
end
figure(newFigure(handles,'Roll Force Vs Roll Gap'));
plotA=plot(N(:,1),N(:,2));
title('Roll Force Vs Roll Gap');
xlabel('Roll Gap [mm]');
ylabel('Roll Force [N]');
xData = get(plotA,'XData'); % Get the plotted data
yData = get(plotA,'YData');
TPosX=(max(xData))*0.6; % returns the maximum value in
x direction
TPosY=(max(yData))*0.8; % returns the maximum value in
y direction
TSp=TPosY*.07;
text(TPosX,TPosY,0, ['D= ',num2str(D),' mm']);
text(TPosX,TPosY-TSp,0, ['K= ',num2str(K)]);
text(TPosX,TPosY-TSp*2,0, ['RW= ',num2str(RW),' mm']);
text(TPosX,TPosY-TSp*3,0, ['Po= ',num2str(Po),' MPa']);
text(TPosX,TPosY-TSp*4,0, ['\delta= ',num2str(d*r2d),' Deg']);
text(TPosX,TPosY-TSp*5,0, ['\mu= ',num2str(tan(W))]);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function RollTorqueVsRollGap(handles)
%ROLL TORQUE
%
% ---------------------------------------------------------------------
disp('RollTorque')
global d2r r2d D S d K v W u Po RW rMin rMax
%get all the variables
getUserVarInput(handles);
%Solve for Maximum pressure (Pm) which occurs at position 0
%-same as other maximum pressures
%integrate the torque factor equation from 0 to alpha
%evaluate the Roll Torque equation
%plot it versus roll gap
%initial condition - feed stress (pressure) at x0
so=[Po/(1-sin(d))];
%point of application of feed pressure
x0=(pi/2)-v;
%variable used in ODE solver, the limits of analysis
%first item (limit) is the initial condition point, the second is the
limit-0
xspan=[x0,0];
x=0; %location of maximum stress.
%for each gap size
%calc a
%solve ODE
%get stress at angle a
%calculate stress at position 0
%
i=1;
step=(rMax-rMin)/20;
for M=rMin:step:rMax
S=M; %Roll Gap
N(i,1)=S;
75
a=getAplha(handles);
%Runga-Kutta ODE solverlha(handles);
sol=ode45(@slipODE,xspan,so);
% extract the stress at nip angle alpha
sa = deval(sol,a);
Pm=sa*((1+S/D-cos(a)*cos(a))/(1+S/D-cos(x)*cos(x)))^K;
%calculate Force factor T by integrating from 0 to a
%Torque factor T
%Roll Torque (divide by 10 e 6 to get N-Meters
%(this needs to be investigated not sure of conversion)
N(i,2)=Pm*RW^2*D*0.125*T/1000000;
i=i+1
end
figure(newFigure(handles,'Roll Torque Vs Roll Gap'));
plotA=plot(N(:,1),N(:,2));
title('Roll Torque Vs Roll Gap ');
xlabel('Roll Gap [mm]');
ylabel('Roll Torque [N-M]');
xData = get(plotA,'XData'); % Get the plotted data
yData = get(plotA,'YData');
TPosX=(max(xData))*0.7; % returns the maximum value in
x direction
TPosY=(max(yData))*0.9; % returns the maximum value in
y direction
TSp=TPosY*.07;
text(TPosX,TPosY-TSp,0, ['D= ',num2str(D),' mm']);
text(TPosX,TPosY-TSp*2,0, ['Po= ',num2str(Po),' MPa']);
text(TPosX,TPosY-TSp*3,0, ['RW= ',num2str(RW),' mm']);
text(TPosX,TPosY-TSp*4,0, ['K= ',num2str(K)]);
text(TPosX,TPosY-TSp*5,0, ['\delta= ',num2str(d*r2d),' Deg']);
text(TPosX,TPosY-TSp*6,0, ['\mu= ',num2str(tan(W))]);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%The Load and save system for powder and process database
%
% --------------------------------------------------------------------
function varargout = PowderName_Callback(h, eventdata,
handles, varargin)
set(handles.PowderLabel,'String',get(h,'string'));
% --------------------------------------------------------------------
function varargout = PowderList_Callback(h, eventdata, handles,
varargin)
% --------------------------------------------------------------------
function varargout = removeButton_Callback(h, eventdata,
handles, varargin)
%remove the powder currently selected
%shift the powder list to eliminate gaps
%possibility of adding warning that there are no more powders in
handles.PowderDB(get(handles.PowderList,'Value'))=[];
guidata(h,handles); % store the changes in the handles structure
%select the first item in the menu
set(handles.PowderList,'Value',1);
UpdateList(handles);
% --------------------------------------------------------------------
function varargout = addButton_Callback(h, eventdata, handles,
varargin)
%get all data from user input
%get the number of powders add one
PowderNum=size(handles.PowderDB,2)+1;
handles.PowderDB(PowderNum).Name=get(handles.PowderName
,'String');
handles.PowderDB(PowderNum).W=get(handles.varW,'String');
handles.PowderDB(PowderNum).d=get(handles.vard,'String');
handles.PowderDB(PowderNum).K=get(handles.varK,'String');
handles.PowderDB(PowderNum).S=get(handles.varS,'String');
handles.PowderDB(PowderNum).D=get(handles.varD,'String');
handles.PowderDB(PowderNum).Po=get(handles.varPo,'String');
handles.PowderDB(PowderNum).RW=get(handles.varRW,'String')
;
guidata(h,handles); % store the changes
UpdateList(handles);
% --------------------------------------------------------------------
function varargout = loadButton_Callback(h, eventdata, handles,
varargin)
% --------------------------------------------------------------------
function varargout = File_Callback(h, eventdata, handles,
varargin)
% --------------------------------------------------------------------
function varargout = Load_Callback(h, eventdata, handles,
varargin)
[filename, pathname] = uigetfile(...
{'*.pdb', 'All PDB-Files (*.pdb)'; ...
'*.*','All Files (*.*)'}, ...
'Select Powder Database');
% If "Cancel" is selected then return
if isequal([filename,pathname],[0,0])
return
% Otherwise construct the fullfilename and Check and load the
file
else
File = fullfile(pathname,filename);
flds = fieldnames(data);
% The file is valid if the variable is called "P" and it has
% fields called "Name" and "W" two are enough
% Validate the MAT-file
pass=0
if (length(flds) == 1) & (strcmp(flds{1},'P'))
fields = fieldnames(data.P);
if (length(fields) == 8) &(strcmp(fields{1},'Name'))
& (strcmp(fields{2},'W'))
pass = 1;
handles.PowderDB=data.P;
handles.LastFIle = File;
guidata(h,handles) %store in global structure
end
end
if pass==0
errordlg('Not a valid Powder Database','Powder
Database Error')
end% if the PDB-file is not valid, do not save the name

end
UpdateList(handles);
% --------------------------------------------------------------------
function varargout = Save_Callback(h, eventdata, handles,
varargin)
% Get the Tag of the menu selected either save or saveas
Tag = get(h,'Tag');
% Get the powder array
P=handles.PowderDB;
% Based on the item selected, take the appropriate action
File = handles.LastFile;
%if never saved before or save as
if (File=='') | (Tag=='SaveAs')
% Allow the user to select the file name to save to
[filename, pathname] = uiputfile( ...
{'*.pdb';'*.*'}, ...
'Save as');
% If 'Cancel' was selected then return
if isequal([filename,pathname],[0,0])
return
else
76
% Construct the full path and save
File = fullfile(pathname,filename);
save(File,'P')
handles.LastFile = File;
guidata(h,handles)
end
else
% Save P database to the default file
save(File,'P')
end
disp(['Saved :',File]);
% --------------------------------------------------------------------
function varargout = PrintDB_Callback(h, eventdata, handles,
varargin)
%this function allows users to preview the GUI before printing
printpreview(handles.Main)
% --------------------------------------------------------------------
function varargout = Exit_Callback(h, eventdata, handles,
varargin)
button = questdlg('Are you sure you want to Exit?',...
'Closing Program?','Yes','No','Help','No');
if strcmp(button,'Yes')
disp('Exiting')
delete(handles.Main)
elseif strcmp(button,'No')
disp('Canceled Exit operation')
return
elseif strcmp(button,'Help')
disp('Sorry, no help available :(')
end
% --------------------------------------------------------------------
function varargout = Help_Callback(h, eventdata, handles,
varargin)
% --------------------------------------------------------------------
function varargout = About_Callback(h, eventdata, handles,
varargin)
msgbox('Johanson Method -- Marcin Balicki -- EMAC
% --------------------------------------------------------------------
function varargout = HelpGuide_Callback(h, eventdata, handles,
varargin)
pos_size = get(handles.Main,'Position');
dlg_pos = [pos_size(1)+pos_size(3)/5
pos_size(2)+pos_size(4)/5];
user_response = modaldlg(dlg_pos);

% --------------------------------------------------------------------
function varargout = checkPParam_Callback(h, eventdata,
handles, varargin)
% --------------------------------------------------------------------
%check if the the user wants to load the process parameters also
P=handles.PowderDB(PowderNum);
set(handles.PowderName,'String',P.Name);
set(handles.PowderLabel,'String',P.Name);
set(handles.varW,'String', P.W);
set(handles.vard,'String', P.d);
set(handles.varK,'String', P.K);
if get(handles.checkPParam, 'Value')==1;
set(handles.varS,'String',P.S);
set(handles.varD,'String', P.D);
set(handles.varRW,'String',P.RW);
set(handles.varPo,'String',P.Po);
end
% --------------------------------------------------------------------
function UpdateList(handles)
%check the size of the database
%take each powder name and place it in the list
P=handles.PowderDB;
%reset list
s='';
%number of powders in a list
for M=1:1:size(P,2);
P(M).Name;
s=strvcat(s,P(M).Name);
end
%select the first powder in the lits
set(handles.PowderList,'Value',1);
%update the display
set(handles.PowderList,'String',s);
% --------------------------------------------------------------------
function varargout = Export_Callback(h, eventdata, handles,
varargin)
P=handles.PowderDB;
% export file format is ( - is a space)
%Name-FrictionalCoefficient-InternalFrictionAngle-
Compressibility-RollGap-RollDia-Po-RollWidth
% Allow the user to select the file name to save to
[filename, pathname] = uiputfile( ...
{'*.txt';'*.*'}, ...
'Save as');
% If 'Cancel' was selected then return
if isequal([filename,pathname],[0,0])
return
else
% Construct the full path and save
File = fullfile(pathname,filename);
fid = fopen(File,'w');
for N=1:size(P,2)
txt=[P(N).Name,' ',P(N).W,' ',P(N).d,' ',P(N).K,' ',P(N).S,'
',P(N).D,' ',P(N).Po,' ',P(N).RW];
fprintf(fid,'%s\n',txt);
end
fclose(fid);
end
disp(['Exported : ',File])
SlipStickFun.m
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Johanson Model
%% Date May 6, 2003
%% Marcin Balicki
%% Ecole Des Mines D'Albi
%% balicki@enstimac.fr
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Description:
%% A function representing the two gradient equations
%% The first function represents the pressure gradient when the
%% powder is slipping and the second when the powder sticks
%% to the wall surface
%% This format is required for the fsolve command which accepts
%% a refrence to a function and solves for x
%% the variables are defined in the main program
function F=SlipStickFun(V)
global d2r r2dD S D W d K v u
x=V(1); y=V(2);

F=[y-(4.*(pi/2-x-v).*tan(d))./((D/2.*(1+S/D-
cos(x))).*(cot(((x+v+pi/2)/2)-u)-cot(((x+v+pi/2)/2)+u)));
y-(K.*(2.*cos(x)-1-S/D).*tan(x))./((D/2).*((1+S/D-
cos(x)).*cos(x)))];
slipODE.m
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Johanson Model
77
%% Date May 6, 2003
%% Marcin Balicki
%% Ecole Des Mines D'Albi
%% balicki@enstimac.fr
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Description:
%% A function representing the differential equation of the
%% pressure gradient when the powder is slipping against
%% the wall surface. This function representation is used
%% by the numerical ODE solver
%%
%% the variables are defined in the main program
function dsdx=slipODE(s,x)
global d2r r2d S D B d K v u

dsdx=[(4.*s.*(pi/2-x-v).*tan(d))./((D/2.*(1+S/D-
cos(x))).*(cot(((x+v+pi/2)/2)-u)-cot(((x+v+pi/2)/2)+u)))];
forceFactor.m
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Johanson Model
%% Date May 6, 2003
%% Marcin Balicki
%% Ecole Des Mines D'Albi
%% balicki@enstimac.fr
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Description:
%% a function representing the FORCE factor
%% used in calculating the roll force
%% the variables are defined in the main program
function f=forceFactor(x)
global d2r r2d S D B d K v u

f=(((S./D)./((1+S./D-cos(x)).*cos(x))).^K).*cos(x);
torqueFactor.m
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Johanson Model
%% Date May 6, 2003
%% Marcin Balicki
%% Ecole Des Mines D'Albi
%% balicki@enstimac.fr
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Description:
%% a function representing the TORQUE factor
%% used in calculating the roll TORQUE
%% the variables are defined in the main program
function t=torqueFactor(x)
global d2r r2d S D B d K v u

t=(((S./D)./((1+S./D-cos(x)).*cos(x))).^K).*cos(2.*x);
modaldlg.m
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Johanson Model
%% Date May 6, 2003
%% Marcin Balicki
%% Ecole Des Mines D'Albi
%% balicki@enstimac.fr
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Description:
%% The help figure code
%% It displays helpful information and is called from the help
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Note:
%% The program was developed on a Solaris machine
%% Graphics may be different on other platforms
% modaldlg Application M-file for modaldlg.fig
% modaldlg('callback_name') invoke the named callback.
% modaldlg([left bottom]) locates the dialog.
error(nargchk(0,4,nargin)) % function takes only 0 or 4 argument
if nargin == 0 | isnumeric(varargin{1}) % LAUNCH GUI
fig = openfig(mfilename,'reuse');
% Use system color scheme for figure:
set(fig,'Color',get(0,'defaultUicontrolBackgroundColor'));
% Generate a structure of handles to pass to callbacks, and store
it.
handles = guihandles(fig);
guidata(fig, handles);
axes(handles.figImage);
iptsetpref('ImshowBorder','tight');
iptsetpref('ImshowAxesVisible','off');
iptsetpref('ImshowBorder','tight');
imshow('johansonModel.jpg');
%axes(handles.figImage);
%x=linspace(0,5);
%g=plot(sin(x),x);
%Position figure
if nargin == 1
pos_size = get(fig,'Position');
pos = varargin{1};
if length(pos) ~= 2
error('Input argument must be a 2-element
vector')
end
%take this part out to prevent the new figure from opening off
screen
%new_pos = [pos(1) pos(2) pos_size(3) pos_size(4)];
%set(fig,'Position',new_pos,'Visible','on')
figure(fig)
end

% Wait for callbacks to run and window to be dismissed:
uiwait(fig);
% UIWAIT might have returned because the window was deleted
using
% the close box - in that case, return 'cancel' as the answer, and
% don't bother deleting the window!
if ~ishandle(fig)
else
% otherwise, we got here because the user pushed one
of the two buttons.
% retrieve the latest copy of the 'handles' struct, and
% Also, we need to delete the window.
handles = guidata(fig);
delete(fig);
78
end
elseif ischar(varargin{1}) % INVOKE NAMED SUBFUNCTION
OR CALLBACK
try
if (nargout)
[varargout{1:nargout}] =
feval(varargin{:}); % FEVAL switchyard
else
feval(varargin{:}); % FEVAL
switchyard
end
catch
disp(lasterr);
end
end
% ------------------------------------------------------------
% No button callback stores 'no' in the handles struct, and
% stores the modified handles struct
% (so the main function can see the change).
% ------------------------------------------------------------
function varargout = noButton_Callback(h, eventdata, handles,
varargin)
guidata(h, handles);
uiresume(handles.figure1);
ROLLING COMPACTION OF POWDERS - JOHANSON
METHOD
AUTHOR - MARCIN BALICKI
Ecole des Mines d'Albi
2003
*
The program was developed on a Solaris machine;
Graphics may be different on other platforms.
Required files:
nip.m This file - main program
nip.fig the graphical user interface for this
program
SlipStickFun.m two functions representing the state of
the powder
slipODE.m ODE for the powder while slip occurs
forceFactor.m force factor equation
torqueFactor.m torque factor equation
modaldlg.fig help menu graphical user interface
johansonModel.jpg image of the system
Run Instructions:
All the files should be located in the same directory.
Once Matlab is up and running there are two methods of stating
the program:
a) Click on File Open, choose the directory containing
required files,
click on nip.m.
This will open a Graphical User Interface (GUI).
b) Type nip on the Matlab command line.
If the local path is the directory containing the required
files
a GUI will appear.
ENJOY!

balick@cooper.edu
79
Author :
Marcin BALICKI
87 Dobbin Street
Apartment 210
Brooklyn, NY 11222
USA
The Cooper Union
51 Astor Place
New York, NY 10003
USA
E-Mail :
conceptcatcher@hotmail.com
80

NUMERICAL METHODS FOR PREDICTING ROLL PRESS POWDER COMPACTION PARAMETERS Abstract
Large numbers of cohesive powders are compacted using a roll press. The principle of compaction is that particulate materials become a compact when they are subjected to high pressure. Experimental work was carried out on pharmaceutical powders [1] to determine the influence of operating parameters on the roll process compaction. Theses parameters are determined for a given powder and must be measured again for any other powder. The subject of this work is to understand how to optimize the process parameters versus the mechanical behavior of powder and the roll-wall friction. Rolling theory for granular solids has been continuously investigated for more then 40 years without a successful model representing the phenomenon. In this work, overall rolling compaction of powders is discussed followed by study of three different theoretical approaches. First the Johanson model is fully studied with the use of Matlab. Overview of the other two methods: slab method and ALE finite element method was also included. A comparison between these models is done to determine the most applicable method for further study. Keywords: Powder Roll Compaction, mechanical behavior, friction, finite element method;

2

1 Introduction.......................................................................................................................4 2 Rolling Compaction.......................................................................................................... 7 2.1 System Overview ..................................................................................................... 7 2.2 Desired Solution........................................................................................................9 2.3 Approach................................................................................................................. 10 3 J.R. Johanson Model Study.............................................................................................12 3.1 Introduction............................................................................................................. 12 3.2 Pressure Distribution before the Nip Region.......................................................... 13 3.3 Pressure Distribution in the Nip Region................................................................. 14 3.4 Determination of Nip Angle....................................................................................16 3.5 Pressure Distribution Calculation........................................................................... 18 3.6 Roll Force and Torque Calculation......................................................................... 18 3.7 Johanson Model Application Using Matlab............................................................19 3.7.1 Example Procedure.........................................................................................20 3.7.2 Powder Database............................................................................................. 24 3.7.3 Printing results ................................................................................................25 3.7.4 Algorithm........................................................................................................ 25 3.8 System Behavior - Parameter Variation Analysis.................................................. 30 3.8.1 Nip Angle........................................................................................................ 30 3.8.2 Maximum pressure.......................................................................................... 32 3.9 Conclusion...............................................................................................................35 3.10 List of Symbols..................................................................................................... 36 4 Slab Method ................................................................................................................... 38 4.1 Introduction............................................................................................................. 38 4.2 Modeling Rolling Compaction with Slab Method ................................................. 38 4.3 Example Slab Method Formulation ....................................................................... 41 4.4 Conclusions............................................................................................................. 44 4.5 List of Symbols....................................................................................................... 45 5 Finite Element Method................................................................................................... 47 5.1 Introduction............................................................................................................. 47 5.2 Modeling Rolling Compaction with ABAQUS .................................................... 47 5.3 Lagrange Approach................................................................................................. 48 5.4 Euler-Lagrange Approach ...................................................................................... 49 5.5 Conclusion...............................................................................................................51 6 Conclusions.....................................................................................................................52 6.1 Process Remarks..................................................................................................... 52 6.2 Powder Characterization......................................................................................... 53 6.3 Models.....................................................................................................................54 6.4 Future Considerations............................................................................................. 54 7 Acknowledgments...........................................................................................................56 8 References.......................................................................................................................57 9 Appendix.........................................................................................................................59 9.1 Powder Data............................................................................................................ 59 9.2 ABAQUS Source Code...........................................................................................59 9.3 Johanson Model - Matlab Program......................................................................... 64 3

NUMERICAL METHODS FOR PREDICTING ROLL PRESS POWDER COMPACTION PARAMETERS

1 Introduction
Roll compaction of granular solids is an industrial process used to compact a powder to a product of high homogeneous density and strength. At the end of the 19th century roll press compaction was initially developed to produce coal briquettes, but today the process has been widely adopted by mass production industries such as food processing, metallurgical, chemical, ceramic, semi-conductor as well as pharmaceutical and even more recently waste recycling [2]. The main principle behind roll press compaction is that compressible granular solids become compact when they are exposed to high stresses from applied pressure between two rolls rotating in the opposite directions.

Fig. 1.1 Pharmaceutical Roll Press (ALEXANDERWERK AG)[27]

Fig. 1.2 Chemical Roll Press (ALEXANDERWERK AG) [27]

The advantage of roll-type press application over classical (die) compaction is that high pressure is continuously exerted on moving granular solids providing an economical, high volume production of granules [3]. The cost savings come in energy consumption which is only limited to the power to drive the rolls, feeding system and any hydraulic adjustment mechanisms. Drying costs are usually minimal. Generally a roller press can produce tablets five times faster than die compaction press [4]. And in case of heavy industries such as mineral and fertilizer producers several hundred tons of material per hour can be processed [5]. However, with increase in speed comes a reduction of quality, thus making rolling compaction most suitable for products of low unit value, less accurate weight uniformity and high tolerances for compact imperfections. Currently, there exists a lack of understanding of roll press powder compaction technology due to the complexity of the system which results in large scale use of empirical knowledge rather than scientific theory. While it is possible to achieve optimum performance using these trial-and-error techniques, the operating costs and time become a big factor especially within pharmaceutical industry where the materials value and desired quality are high. Moreover, the use of basic physical data, such as compressibility and compactibility (ability to cohere into compacts), in formulation work in order to predict 4

Another property is the wall friction describing the interaction between the particulate material and the surface it is in contact with. Characterization of the flowability of a particular material consists of the relationship between shear strength and the compacting stress acting on it. This property can also be measured by modifying the above instruments. The Johanson is one of the first to attempt to describe the rolling compaction of powders.12]. This method also provides cohesion. Although the above tests attempt to measure the tribological properties. Attempts to model the behavior of the system have been moderately successful. This shear strength is dependent on bulk density which is determined by the compaction force to which the powder has been subjected. Currently many efforts are placed on collecting experimental roll press data and characterizations of powders and compacts. friction is still one of the major unresolved issues in representation and influence in powders especially while undergoing compaction. this is where the difficulties arise. difficult to measure and moreover they change as the powder undergoes compaction.10] The general problem is that characteristics of particulate material are not well definable.compacting behavior of particle matter is limited. as with the slab method. it can provide essential boundary conditions for other models. as well as their behavior as the powder is compacted. The slab method and FEA methods for powder roll pressing are still in development stages paralleling the discoveries in powder characterization and process understanding. All the above require numerical processing with the possible exception of the slab method.14]. Most of the original work on roll press powder compaction has been adopted from sheet metal rolling but these cannot simply be transferred to roller mills especially not to briquetting rollers. The slab method seems to more completely describe the behavior of the system in compaction because it allows for inclusions of elements such as cohesion. then it was applied to metal powder rolling by Katashinskii [9]. which is related to the shear stress required to cause failure of the compacted to material when is subject to zero normal force. It is believed that friction affects. The slab method was originally developed and widely applied to successfully predict the pressure distribution and roll separating force in sheet metal rolling. ABAQUS is one of the widely used and commercially available finite element analysis packages which provides the means to represent the behavior of powders. which are both necessary for evaluating the quality of theoretical results [5. However. There exist three models that are regarded as best suited for rolling compaction of powder: Johanson model [6-8]. roll velocity. and is not constant throughout. densification which poses difficulties in 5 . The driving force behind research in this field is the desire to formulate methods to help the operator of rolling compaction to correctly adopt his system to a specific powder and final product guidelines. Slab method [8-11]. This approach is promising as it allows for inclusion of many powder parameters but. Moreover. therefore their measurement may just be applicable at low compaction pressures. the applied stress in rolling compaction is not on the same order as in the available tester. An improved theoretical understanding of powders and the rolling compaction process will enable a more rational approach to the creation of powder compacts. His work serves as the basis for beginning research in this field. and Finite Element Analysis (FEA) [8. This information is attained by experiment using a Jenkie shear tester or an annular shear cell tester [15]. The FEA approach is the most recent modeling technique used to represent the deformation process in compaction of powders [13. friction.

Furthermore.postulating a system model. This paper is an initial study giving an overview of rolling compaction. Finally there should also be a assessment of the final granulate or compacted product either by physiochemical or physio-mechanical means [16]. 6 . the powder can also be characterized by the yield stress limit function such as Mohr-Coulomb yield criterion which describes the relationship between pressure and failure or shearing of the powder. It summarizes existing analysis to simulate and predict system behavior to gain understanding of issues involved to choose the best approach available to proceed. followed by an extensive study of the Johanson method and a brief overview of the Slab method and FEA approach.

1). generally. a roll press can be categorized into two different types: type one that includes rollers that can be rigidly fixed to a particular height and type two that allows the adjustment of roller force. Friction between material and the roller surface draws in the powder towards the narrow space separating the rolls (roll gap) where the powder is submitted to high stresses causing compaction.1 System Overview y x COMPACT POWDER Fig.1Roll Press The roll compaction process consists of two counter rotating cylindrical rolls mounted so that their axes of rotation are parallel (Fig. 2. As for 7 . by adjusting the gap size in roll press of type one. The raw material is delivered to the space between the rolls by gravity if the a hopper is used. generally. tend to work best with non cohesive powders with high flowability. and via a screw feeder or a combination of both [17]. the roll pressure adjustment roller type indirectly adjust the gap size which results from the equilibrium forces between the powder and the force of the rolls. Besides the feed system type.2 Rolling Compaction 2. The powder needs to sufficiently fill the space between the rolls in a uniform and continues fashion to yield a homogeneous compact. molded into strips using corrugated rolls or formed into a particular geometry matching the cavities recessed in the roll surface (briquettes) using pocketed rolls. screw feeders are used for that they allow greater control of feed pressure than conventional top fed system which is dependent on gravity and cohesive property of powders. Depending on the roll surface materials can be shaped into dense sheets using smooth rolls. hoppers. Fine powders exhibit poor flowability therefore. However. Top feed systems. Conversely. Feeding systems are the initial steps of the compaction process with great influence on the compaction results. 2. the pressure exerted on the powder by the roll can be controlled.

the natural point is also believed to be the point of maximum pressure. NIP ANGLE NEUTRAL ANGLE FEED PRESSURE EXIT ZONE ENTRY ZONE COMPACTION ZONE NOT TO SCALE Fig. As the material is pushed out of the process zone. compaction zone.the width of the roller the diameter/width ratio is determined to minimize density variation across the roller.2 Zones of process. This angle is generally observed not to coincide with the point where the gap is the smallest but rather just prior to it due to minor slip of compact upon ejection [10]. Generally. The difference between the frictional forces in the two regions produces a net frictional force that pulls the powder into the roll gap. The beginning of the ejection region is sometimes referred to as a neutral point because it sets the boundary between the region where the the material moves at the same speed as wall surface it comes in contact with and the region where the material moves faster than the roll. the exit zone. the material cannot be drawn through the roll press. This increase in speed causes slip in the opposite direction before product finally loses contact with the roller. 8 . it picks up speed and begins to move faster than the roller. the densification is solely due to the rearrangement of particles under relatively small stresses created by the feeding method (ie. This region is believed to began at a point called the nip angle where the powder no longer slips and begins to stick to the wall. As a result the compaction zone is also referred to as the Nip Region. It is important to mention the effects of friction on the system since it is the principal mechanism by which the powder is pulled into the roll gap. particles fracture and/or deform plasticly under heavy stress provided by the rolls. In the second zone. is a region of a great decrease in pressure as the compact is ejected and can expand due to elasticity. The final zone. 2. The compaction process can be divided into three zones defined by the behavior of the material (Fig. if the wall friction coefficient is too low. 2. screw feeder).2). In the first zone. The friction forces acting on the strip are greater in the region where the roll moves faster that the material. feeding or entry zone. Moreover.

uniformity. to lower cost of handling and transportation the bulk powder density can be increased as well as to minimize dust (excess 'fines') problems and improve handling [18]. Cohesion. Gap Size Powder Parameters: Internal (effective) Angle of Friction. granulation. there exist very little scientific methods for designing a successful press by matching the process parameters to the granular solids to be compacted to get desired results. Compressibility.2 Desired Solution The use of rollers continuously applies high pressure to a material efficiently producing sheets that can be further processed for storage. The advantages of agglomeration in pharmaceutical industry is that it is a dry granulation system with high volume production of granules and good control of final particle bulk density and flow properties [3]. As mentioned above. Roll Velocity. The process is used to alter material density. Admissible Stress. For example. Classical die compaction can also provide some information. It can also enhance performance characteristics of powder by reducing reactivity. drying or burning. In thermal operations. dosing . For 9 . The following powder roll compaction parameters can be considered in developing models and can be divided into the following categories: Operating Parameters: Roll Force. lack of good mathematical models and experimental data greatly effect the design of roller press. it can also improve efficiency of melting. or final product. With out good mathematical models for behavior of granular solids it is very difficult to create correct models of systems that include powders. there exist many advantages of rolling compaction of powders. Bulk density Tribological Parameter: Friction between powder and roll surface Powder behavior characterization is one of the major research areas in pharmaceutical powders. Compaction can minimize segregative tendencies and prevent caking during storage. A strip of compacted material can also be crushed to facilitate further processing in order to produce granules. Inertia Geometric Parameters: Roll Diameter. trail-and-error techniques are widely used to design and calibrate such systems. Currently. Roll Torque. Thus. Roll Width. flowability. solubility or permeability ( ie.drug release time ) [3]. The number of variables. Feed Pressure. Gravity. With the use of briquetting roll press a required geometry can be achieved. however. when a new powder is introduced to the roll-press operations many working parameters will change which will require many hours and materials to find these god compaction settings. especially for compact classification as well as some insight into the wall friction effects. and strength. 2.At first sight the rolling compaction may look simple by after all the parameters involved are analyzed and the powder behavior is discussed the problem contains many hurdles. As mentioned previously there exist a number of testing techniques for characterization or powders such as Jenike shear tester.

TRIBOLOGIC) 2. [3] More economical and simpler approach is to predict relationships between the bulk material.22].3 Approach In modeling. Scaling up pharmaceutical roll compaction process from laboratory to industrial magnitude can also involve several issues and technologies which will require more testing and funds.19-22] A major breakthrough was done by Johanson who postulated a method to predict the powder behavior in the feeding zone as well as the pressure distribution in the nip region [6]. Since these do not include the same issues and assumptions when powders are used (mainly material yield criterion). a quick approximation using a computer simulation can be useful to a predict operating parameters for preliminary trials which should be close to the optimal conditions. This applied pressure can than be used to calculate the density or the strength of compact based on experimental data (ie.example. Oversimplified models tend to give us poor information. indentation tests). one side effect of incorrect setting is delamination or capping caused by overcompaction. The first area of study was the application of sheet metal rolling theories [21. the press dimensions and the operating conditions by theoretical correlations. only then one can describe or approximate the system by selected differential equations and boundary conditions. But as presented. the press dimensions and operating parameters necessary to apply required pressure to a granular material to achieve a desired compact density [6. in which geometry. and boundary conditions are simplified based on the analyst's understanding of what features are important and not important in obtaining the desired results. When the physical phenomenon is fully understood. He also provided the means to calculate the boundary point between feeding and nip regions as well as roll force and roll torque. Analytical approach is highly desired due to an immediate ability of such model to be applied in the field by roll compactor operators. one attempts to exclude trivial detail and include all essential features so the model describes the actual problem with sufficient accuracy and is not unnecessarily complicated. which are based on mathematical models and experimental measurements. material properties. requiring only minor trimming by an experienced operator. loads. Since this paper is an initial investigation into rolling compaction of powders the this model was used to gain more understanding of the posed issues as well as gain a general knowledge about the parameters and their effects. For example. MATERIAL. Optimal model provides relationships between the material properties. This mathematical model is an idealization. Desired relation for pressure is a function of the following types of parameters: PRESSURE = ƒ(PROCESS. but are good starting points in understanding the problem. compaction of metal powders is the area of more interest as investigated by Tundermann or Katashinskii [9. His work even incorporates application of pocketed rolls.8]. however the task of finding analytical expressions relating all parameters of the process is quite difficult. It is necessary to understand that analytical method is applied to this mathematical model rather than to the actual physical problem. The slab method seems very promising because it can incorporate ample 10 . this model is not the most accurate representation of the process. so other models were briefly looked at. GEOMETRIC.

gravity.information about the behavior of powders. Even though the computers today are powerful. however a group of scientists has developed FEM code for ABAQUS that simulates the problem with moderate success [8]. has recently been used to simulate classical die compaction with satisfactory results [13]. including velocity. to expend the model to three-dimensions would take much computing time but not necessarily yield more insight into the process. since this is central to the ability of all the theories discussed to correctly model powders behavior in a compaction environment whether it is in classical compaction or rolling compaction. As these models are developed there needs to be parallel development in process parameter measurement for theory verification [10]. friction. All these models use a somewhat simple Mohr-Coulomb friction assumption which seems to be true for solid materials but is not verified for powders. exact pocket geometries in the roll surface and expand the model to three-dimensions. Force equilibrium equations are written for this small slab. Final step would be to expend the chosen model to include material behavior models in the feeding process. Furthermore. much more than the Johanson model. Just as the Johanson model the slab method only works in one plane assuming there is no out of plane strain. The complexity of this function seems to increase with it's ability to correctly represent yield limit and therefore making the differential equation very difficult to solve without significant simplification or numerical methods. Noteworthy is the fact that friction is believed to play a major role in the process. and other factors. The result is a differential equation that is rewritten in terms of one principal stress by relating and simplifying the two existing principal stresses using a yield criterion which describes the behavior of powder under extreme stress that causes it to shear. a commercial FEA software. extensively relies on computer's ability to perform quick and numerous calculations. At its core is the analysis of the nip region a small slice at a time. It also has potential to provide functions which can be used without the help of computers to rapidly calculate the working parameters. The FEM modeling technique appears to be even more interesting than the Slab method due its reputation as one of the closest real world modeling tools and its ability to incorporate any user defined parameter behavior with relative ease. The advantage of using this approach is that the models can be adjusted to produce improved solutions through numerical testing and reformulation. Rolling compaction seems more challenging due to more complex boundary conditions. This approach was original applied to sheet metal and metal powder rolling. The most modern approach. It is applied with mathematical model of system behavior and experimental data for powder behavior. ABAQUS. finite element analysis. 11 . great emphasis needs to be placed on the study of powder characterization.

These regions are as follows: 1. 2.R. y D α θ P0 POWDER S x COMPACT Nip Region Fig. As the powder moves into the gap. information about the design of a roll press for powders was only of empirical nature. Johanson was one of the first to fill this void by providing the means to determine the press dimensions and roll forces necessary to apply the required pressure to a material with specific properties which were attained experimentally [6]. His theory is based around the fact that the process can be divided into distinct zones where the powder behaves in a unique and determinable fashion.3 J. Here the powder has the bulk material properties and does not change in density due to gravity.1 Introduction Although roll press compaction was predominantly applied in metal sheet or bar rolling. it begins to press against the wall of the roll but 12 .1 Roll Press Johanson model describes the stress function in relation to geometric parameters and the plastic yield laws of the material undergoing continuous shear deformation between rolls. there existed a need for a mathematical model describing the relationships between the material properties. in the early 1960s a new emphasis was placed on rolling of powder metals or briquetting granular materials. Thus. Johanson Model Study 3. the press dimensions and operating parameters to aid engineers and operators in design and operation of roll presses for compaction of granular materials. Initially the powder is pushed towards the region between the two rolls with a constant pressure by the use of a screw feeder or gravity-fed hopper. 3. At that time.

Johanson includes an approximation that describes rolls with pockets or indentations. Material undergoes continues shear deformation into a solid mass.1) applies to a region between the rolls where the powder slips against the roll surface. In this region the powder is assumed to "stick" to the roll surface or have the same velocity as the roller. α. the powder stops slipping and starts to travel with the same velocity as the roller. • • • • • • • Material is isotropic. 3. Following the compaction the material enters the exit region where its velocity is greater than that of the rollers. Notably. Eq. 3. At this point the compact is believed to expand.2 Pressure Distribution before the Nip Region Johanson introduced Jenike's model for steady state flow in the theory of roller press compaction. In his equations. At some point along the surface of the roll. or the nip region (Fig. 3. The Jenike and Shield effective yield criterion ( Eq. 13 .2) . The yield behavior of the powder is described by the internal friction angle δ.1). at which point the feed pressure P0 is the dominant source of stress ( Eq. 3. Johanson calls this point Nip Angle. Friction between powder and roll surface is Coulomb friction. although Johanson notes that this expansion is quite small and assumed to be negligible. θ0. Continuous plain-strain deformation. 3. Coupling this information with experimental pressure-density relationship. 4.not with enough pressure to prevent slipping. In this zone. the final density of the compact can be predicted. The model also provides means for calculating roll force and torque. Johanson model can be used to calculate the maximum pressure exerted on the material being compacted. also called the slip region. the powder experiences relatively little shear deformation. Rollers are rigid. This pressure peak occurs at the smallest part of the gap (θ = 0). Circumferences of the rollers are much larger then the contact area. the gap size. 3. Weight of material is negligible when the press is force-fed. The nip angle marks the beginning point of the compaction zone. However. Following list displays assumptions used in the work of Johanson.1 sin    =  1 − 2  1  2 This region begins where the powder initially makes contact with roll surface. Here the powder becomes drawn in between the two rolls which exert pressure on the powder forcing it to undergo continuous shear deformation until it is compacted to the thickness equal to the smallest part of the region between the rolls. frictional and cohesive. for the purpose of this paper. the roll surfaces are assumed to be pocketless.

3.  /   =V  / V  Eq. 3. Johanson applies conservation of mass concept represented by Eq.4 14 . Shear Stress. Eq. This friction is normally given as the slope. it increases to an extremely large value as θ = 0 is approached. The frictional condition for slip along the surface along with the magnitude and location of feed pressure P0 are sufficient boundary conditions to use the Jenike-Shield shear criterion to determine the pressure distribution before the nip region (θ > α).2  0= P0 1−sin  The feed angle θ0 can be computed using the wall friction angle φ and the internal or effective friction angle δ ( Eq.3). σ Fig.3 Pressure Distribution in the Nip Region The powder that enters the nip region must be compressed to a final hight equal to the dimension of the roll gap.2. 3. 3. Eq. Moreover. µ. θ0 . τ cti fe Ef Y ve s cu Lo ld ie s ocu ld L Yi e ll Wa Α δ φ σ2=P0 σ 2ν 2θ0 σ1 Normal Stress. 3.4 where the change in density is proportional to the change in volume. 3. 3. but can also be described by the angle φ (tan φ = µ ).3 0 =  arcsin 2   sin  sin  The Jenike-Shield yield criterion (effective yield locus) for the slip region is represented graphically in Fig.one can infer that the mean normal stress ( σ = (σ1 + σ2 )/2 for any θ ) remains constant for considerable distance after the application of Po. 3.2 Internal and Wall friction loci This figure also displays the wall yield locus which describes the friction condition at the powder-roll surface contact.

3. 3.3). 3. Due to linear behavior. and time of compaction. 3. As this same mass travels towards the gap it must be compressed to a slice of volume Vθ that is under the same sized arc-length segment ∆L (Fig. attaining the compressibility is simply done by plotting a few points from pressure .5 1  = 1 2 2   K The exponent K represents compressibility which is a material property and is constant for a powder with a given moisture content.This means that powder with a particular mass trapped in a slice under the surface of arc-length ∆L has a volume Vα. The inverse of this derivative is the compressibility K. temperature. 15 . ∆L ∆L Vα Mα Vθ Mθ Mass Mα = Mass Mθ Fig.3 Volume vs Mass Pressure-Density relationship is experimentally attained using a linear compression test in a tablet pressing device and is presented as the log of density as a function of log pressure: Log Bulk Density (γ ) 2 1 1 Κ Log Pressure (σ) Fig. Thus the only the volume and therefore the density changes as a finite amount of material moves through the roll gap. It describes the degree of volume reduction due to applied pressure.density data on a log scale and calculating the slope of the line.4 Pressure vs Density This relationship is often referred to as the Tablet Material Law represented by the following equation: Eq.

From Eq. σα is derived: Eq. σθ. Solid curve represents the powder undergoing continuous slip and the dashed curve represents the powder traveling with the same velocity as the rollers. Figure 3. 3. Eq.7 V  =[ S D 1−cos   cos  ]  LW By applying this definition to Eq. W is given by : Eq. or the beginning of the nip region. 3. For example.5 demonstrates this idea. an assumption is made that σ is equal to the pressure exerted on the powder only by the roll. Central to his idea is the assumption that the gradient of these two pressure distributions is equal at a point: Nip Angle α. and the zone where the powder slips along the roll surface is between the angle θ and the point of where pressure gradient of slip state equals 0. Note that the nip region is from angular position of 0 to angular position α.5 the following relationship between stress at any θ. 3. This point is also the point of application of feed pressure. since major principal stress in the nip region is much grater then the minor principal stress. thus the intersection of two curves in gives the angular position. and stress at the nip angle. provided the nip angle α is known ( Eq.6   =    /   =  V  / V   K K The volume between an segment of arc-length ∆L.8. 3.4 and Eq.It is important to mention that the words pressure and stress are interchangeable due the fact that there is only one constitutive pressure source in each region. D and roll width.8   =  [ 1S / D −cos  cos  1S / D −cos  cos  ] K 3. α .) As mentioned previously.6 the the pressure distribution relationship between the rolls in the nip region can be obtained. roll diameter.4 Determination of Nip Angle Johanson postulates that there must exist a point of transition where the powder stops to slip along the roll surface and begins to travel with the same velocity as the rolls. 3. in the nip region stress is primarily due to the roll pressure thus σ = Proll. 3. 16 . 3. Johanson is able to mathematically describe the pressure distribution for the system where only slip occurs and where the no slip occurs.

10). 3. the discussion of this method of calculation is beyond the scope of this paper. 3.2) and are represented by the following equations: Eq. However.9 4   /2 − −  tan  d = dx D 1S / D −cos   ][ cot  A−U −cot  AU ] 2[ Therefore. 3. by equating Eq. 3. 3. 3.NIP REGION SLIP REGION Nip Angle α Feed Angle θ0 Application of P0 Fig.13 A= / 2 2 U=/ 4−/ 2  −arcsin =   2 sin − sin  17 .9 and pressure gradient equation of the case where no slip along the surface occurs ( Eq. combined with the assumption that not only the gradients but also the pressures at that point are equal.9 ) is derived by using the effective yield-locus equation ( Eq.5 Determination of Nip Angle The gradient of pressure for the assumption of slip along the roll surface ( Eq.1) combined with equilibrium conditions that form a solvable system of hyperbolic-type equations.10 d  K    2 cos −1−S / D  tan  = dx D  1S / D−cos   cos  2 The variables used in the above are derived from the yield and wall loci (Fig. 3. 3. Eq. Eq. σslip= σstick. 3.12 Eq. and solving for θ will yield the nip angle. 3.11 Eq. 3.

AvicelPH101 and Lactose Monohydrate in a roll press with roll diameter of 130 mm.6 demonstrates pressure distributions for two powders.6 Pressure Distribution in Nip Region 3. therefore he provides means of calculating roll force and roll torque. 3. The nip region is the limit of integrations because the pressure there are much greater than those in entrance and exit regions.3.7 demonstrates the effects of roll gap hight variation on roll force for two different powders .14 Eq. Figure 3. 3. [see Appendix for data] Fig.9) with initial condition of σθ = σ0 .5 Pressure Distribution Calculation The procedure for calculating the pressure distribution in the nip region is as follows: First.2.14 where the the Pm is the maximum pressure exerted by the rolls on the material and F is represented by equation 3. σα. Eq. 3.6 Roll Force and Torque Calculation According to Johnson the pressure distribution is not very useful in design of a roll press process. 3.) Figure 3. 3.15.8) requires a value of pressure at the point of transition. the nip angle is determined using the aforementioned method.06 Mpa. 3. gap size of 1mm and initial feed pressure of .15 RF=Pm WDF/ 2 F=∫=0 = [ S/D  1S / D−cos   cos  ] K cos  d  18 . This value is calculated by numerically solving the differential equation for pressure gradient in the slip region ( Eq. The nip region pressure distribution equation ( Eq. where σ0 is the mean normal stress at the position of application of P0 ( Eq. When the pressure distribution in the nip region is known the roll force can be calculated numerically using equation 3.

3. 3.7 Johanson Model Application Using Matlab Matlab mathematics software package was used to create an application implementing Johanson Model of rolling compaction of powder (Fig.8 Roll Torque vs Roll Gap 3. 3. 3.16 T =∫=0 = [ S/ D  1S / D −cos   cos  ] K sin  2   d  Eq. Matlab was used to numerically solve the non-linear simultaneous and also differential equations discussed in previous sections as well provided an intuitive graphical user interface to demonstrate the capabilities of Johanson Model. Moreover. the program provides a 19 .9).7 Roll Force vs Roll Gap In a similar manner roll torque can be calculated using the following equations: Eq.Fig. 3.17 RQ=Pm WD2 T /8 Fig.

3. Fig. The program was written with modularity in mind to improve portability and efficiency.1 Example Procedure The following figure displays the graphical user interface (GUI) which consists of system parameters.7. plot selection and plot variable range (Fig. 3. The source code contains extensive comments to aid in future development.10). database functionality.means of creating and altering databases of powder properties and process parameters which allows for quick analysis of parameter variation on powder compaction.9 Screen Shot 3. 20 .

After the GUI loads the user can immediately begin to experiment with the default values for AvicelPH102 loaded into input areas (Fig.11 User Input . 3.1) by opening and running the 'nip.Fig.10 User Interface The GUI is run in Matlab environment (version 6. Fig.1.450 Release 12.Parameters The parameters variables are as follows: 21 . This file contains the main portion of the project: user input logic.m' file. algorithms and GUI manipulation. 3.11).0. 3.

µ = roll surface .powder friction coefficient δ = internal friction angle of powder K= Compressibility constant S= Gap size . 3. Fig. It is also advisable to pay attention to the Matlab command line for system and program messages especially if extreme values are entered by the user.11). 3.12 Plot Menu After choosing the appropriate parameter values the user should adjust the range of the invariant which will limit the time of calculation and display only the desired results (Fig.smallest distance between rolls D= Diameter of Rolls P0 =initial feed pressure (perpendicular to major principal stress) RW= roll width These values can be replaced with any desirable numeric value.12) When a plot is chosen the user input fields adjust their visibility according to the required parameters for the particular operation. In case of a typographical mistake (entering a combination of alpha and numeric characters) a warning window will pop up. 3. 3. In the case of the Maximum Pressure vs Roll Gap. Gap size input box is hidden because it is the invariant and Roll Width is not used in this calculation (Fig. The range variables are : rMin = minimum limit rMax = maximum limit 22 .13). (Fig. The next step is to choose the type of relationship desired from the plot pop up menu.

14).15). saved or printed (Fig.15 Two Results To achieve this effect. 3. 3. 3. 3. after altering the parameters.16).Fig.13 Variable Limits To began the process the PLOT button should be pressed. 3. 23 . 3. Fig. Fig.14 Result If another plot of the same type is desired the results can be plotted on the same axes as the last plot for comparison (Fig. the button labeled 'Plot On the Same Axes' should be pressed displaying 'ON' (Fig. At this point the program collects user inputs and runs the algorithm displaying the results in a separate Matlab Figure window which can be edited.

loading a particular powder into the user input boxes is done by highlighting the desired powder from the powder database list and clicking on LOAD (Fig.75 1 130 0.txt) of the currently opened database. these labels may need some user interaction to clarify which data label belongs to which curve. 3. thus an export function was created that creates a ASCII text version (. 3.17 Powder Database The database data is stored in Matlab variable format file with a suffix of .32 28 4.1 50 AvicelPH102 0. The software allows the user to create a database of all input variables: powder properties and process parameters. 3.16 Plot Location Button This effectively finds a figure containing the same type of plot and displays the new data on its axes. If multiple curves are on the same axes. 3.pdb. After the . Using the provided interface this information can be altered.pdb . there may be a need for powder database use outside of the Matlab environment.1 50 Avicel2 0. saved and loaded at anytime (Fig. Fig.18 39 7.Fig. The program automatically filters the current directory for files ending with a .18).38 42 4.75 1 130 0. 3.1 50 The fields correspond to parameters in the following fashion: Name FricCoefficient InternalFrictAngle Compressibility RollGap RollDia P0 RollWidth Load database file function is located under the menu heading FILE (Fig. 3. 24 . This data file is space delimited as in the following example: Lactose75 0.17). However. If include process parameters option is checked the powder properties as well as system properties will be loaded into their respective input boxes.7.2 Powder Database To improve the utility of the software a database functionality was implemented.17 ). The program also creates data labels for each curve displaying all the respective parameters entered by the user.pdb database file is opened.31 1 130 0.

3. Furthermore . providing another method for archiving records of experimentation. lines. This example is probably the most useful in the fact that the roll press operator is able to adjust the gap size The following flow chart summarizes the internal program procedure from the time the user presses the PLOT button to the final display of the results. This figures can also be saved for later editing.4 Algorithm This section describes the internal workings of the program by using pressure distribution calculation as the example. This procedure also saves the process parameters along with powder parameters. line types. This change is only permanently affected after the current powder database is saved. Otherwise reloading the powder database from the FILE menu restores the list to the last saved state. 3. etc. Moreover each figure/axes is fully editable allowing for adding text.7.Fig. another database utility stems from the fact that Matlab naturally allows the user to edit. To remove the powder select the NAME of the powder from the powder list and click REMOVE. arrows and changing colors. fonts. align and fill the page with the GUI.18 File Menu To add a the current configuration of user inputs for powder parameters type in or alter the current NAME located in a red box above the LOAD button and click ADD. exported as an image (tiff or jpg) file or just printed.7. 25 .3 Printing results Matlab print preview function was chosen as a preferred method to print the state of the user interface because it allows the user to rotate. This creates an instance of the powder NAME in the powder list. 3. save and print Figures.

9 . The data is stored in a double array for plotting Calculate initial stress and application point For each increment of gap size from rMin to rMax do the following Numerically solve for nip angle (α) Numerically solve differential equation for pressure distribution in the slip region Calculate the stress at angle α Calculate the maximum pressure using pressure distibution equation in the nip region Store it along with the corresponding gap size DISPLAY Check if the Plot in the Same Figure is Checked This takes adventage of matlab's ability to find graphical objects YES Select the last figure of same type NO Create a new figure Plot results data Label the figure X axis represents gap size Y axis represents maximum pressure User inpt parameters are converted to text and positioned on the axes by calculating X and Y axis data ranges Fig.10) for θ which represents the point of intersection of the two curves or the angle α.19 Example Program Flow Chart 26 .12. Point of application (Eq. Eq 3.13) Initial Stress (Eq.2) .3) Increment size is calculated by dividing the range of Gap Size by number of desired increments. u.11.5 . Call getAplha(handles) to do the following: Using fsolve.e.2. Eq.USER INPUT Desired Relationship i. 3. 3.5 mm All user input needs to be numeric User input can come from the database module Powder Properties: K.Maximum Pressure exists at this point. ν ( Eq 3. 3. 3. 3.8) )calculate the pressure at angular position 0 . ie 40. Maximum Pressure vs Gap Size Range of analysis variable: 0. solve two simultaneous equations (Eq 3.9) is solved using direct numerical integration solver (ODE45) which returns array of results From the results of the solver extract the value of stress at angle = α.A. The differential quation for the pressure gradient during slip (Eq. δ Geometric Properties: S. With the values from above.W Feed Pressure: P0 Wall Friction: u ALGORITHM Collect and convert user input to usable form Calculate constants Call getUserVarInput(handles) function to : Convert degrees to radiants Converrt coeficcient ofwallfriction to wall friction angle Calculate constants . from the pressure distribution equation (Eq. Eq 3. 3.D.

varW.'String')). The user inputs are then converted to usable format required by the model. %initial condition so=[Po/(1-sin(d))].varRW. 3.'String')). The next step is to calculate the initial stress on the powder at the beginning of the application of the feed pressure as defined by Eq.internal friction angle of powder % Po=initial pressure at the entrance (perpendicular to major principal stress % W=phi .First step after the user has initiated the procedure by pressing the PLOT button is the collection of user input data.wall (roll-powder) friction angle % (attained from friction coefficient tan(phi)=mu) % v=cute angle between the tangent to the roll surface and the direction of % major principal stress which can be calculated using W and d % RW=roll width % rMin = min range value % rMax = max range value %%%%%%% % The next functions grab the string input variables and convert them to % double precision numbers S = str2double(get(handles.'String')).'String')).varD.'String')). %w at this moment is the friction coefficient so take atan to get the wall %friction angle in radiants: W=atan(W).2 and its location defined by Eq. for example angles need to be in radiants and coefficient of friction needs to be converted to angular format. v=(pi-asin(sin(W)/sin(d)) -W)/2.'String')). % calculate v which is used all equations u=(pi/4)-(d/2). D = str2double(get(handles. Note: '%' denotes a comment function [] = getUserVarInput(handles) %set global variables used in functions.rMin.rMax. 3. rMin = str2double(get(handles.'String')).'String'))*d2r.3. rMax = str2double(get(handles. global d2r r2d D S W d K v u RW Po rMin rMax %get all the variables %angle variables are converted to radiants d2r=pi/180. 3.varK. Po = str2double(get(handles. The following function was written for this purpose. W=str2double(get(handles. d = str2double(get(handles. % conversion factor radiants into degrees %%%%%%%% % S=Gap size(between rolls) % D=Diameter of Rolls % K=Compressibility constant % d=delta .'String')).varS.vard.varPo. RW=str2double(get(handles.3) x0=(pi/2)-v At this point the algorithm has all the necessary data to began the application of the 27 . %point of application of feed pressure ( equivalent to Eq. The program queries all the input fields but only uses the ones required by the particular relationship chosen and in this case Maximum Pressure vs Gap Size. K = str2double(get(handles. % conversion factor degrees into radiants r2d=180/pi.

%increment the array index end The getAplha function accepts the argument handles which is passed for formality. %solve the slip differential equation % using Runga-Kutta and %initial condition of so at point x0 sa=deval(sol. %integration limits from Po application to 0 i=1. rMax and rMin. The required variables are simply passed from function to function by their global definition. the algorithm may converge to a point that is not a solution of the system of equations. by default fsolve chooses the large-scale optimization algorithm which is a subspace trust region method and is based on the interior-reflective Newton method.2)=sa*((1+S/D-cos(a)*cos(a))/(1+S/D-cos(x)*cos(x)))^K.Johanson Model to calculate the pressure distribution at different gap sizes. %this value seems to work well Options = optimset('Display'. The fsolve equation solver from the Matlab Optimization Toolbox finds a root (zero) of a system of nonlinear equations. %Current Gap size a=getAplha(handles). More specifically. Options).sspan. Each iteration involves the approximate solution of a large linear system using the method of preconditioned conjugate gradients [23].so). This iterator quantity may be different for other calculations (plot types) to attain the best balance between calculation time and result resolution. In this case the two nonlinear equations are the pressure gradient with slip ( Eq.1. %iterator for array indexing x=0. %save the current gap size %using the initial stress at α calculate the %maximum pressure (x=0) and save it N(i. However. The following code is the main loop iterating through 40 different gap sizes. i=i+1. InitialGuess.a).9) and the pressure gradient without slip ( Eq.'off'). if the Jacobian of the system is singular. %from solution find stress value at position α N(i. xspan=[x0. it contains information about the GUI. function a=getAplha(handles) global d2r r2d D S W d K v u RW Po rMin rMax InitialGuess = [.. although it is not used in this function. And since each function refreshes all the variables there is no problem with unwanted variable values. 3. It returns the point of the intersection of the curves representing the equations which is the angle α in radiants. 3.10). The above mentioned equations are contained in a function called SlipStickFun in 28 . a=XY(1). %do not display progress % call fsolve which returns a vectory of which the first component is the % angle α and the second part is the pressure gradient value XY = fsolve(@SlipStickFun. %maximum pressure is at 0 step=(rMax-rMin)/40. The advantage of using a least squares method is that if the system of equations is never zero due to small inaccuracies. The fsolve method is based on the nonlinear least squares algorithm.1)=S.1]. %Calculate the iterator size for M=rMin:step:rMax S=M. The iterator size is calculated by dividing by 40 the difference between invariant range values. or because it just does not have a zero. the algorithm still returns a point where the residual is small.0]. %calculate the α sol=ode45(@slipODE.

9. TPosX=(max(xData))*0.' in front of them to allow for element by element matrix operation.*tan(x)). ylabel('Maximum Pressure [MPa]'). 3.*(pi/2-x-v). function F=SlipStickFun(V) global d2r r2dD S D W d K v u x=V(1). 3.*((1+S/D-cos(x)).*tan(d)).) Matlab's ode45 numerical differential equation solver was applied It is based on an explicit Runge-Kutta formula. The ode45 requires a argument in a function format similar to the SlipStickFun. It is important to note that the stress at θ (σθ) is equal in both equations at point of intersection and therefore can be omitted. xlabel('Roll Gap [mm]').m file. % creates a variable for vertical text spacing 29 .x) global d2r r2d S D B d K v u dsdx=[(4. After the algorithm finishes the results need to be plotted.*s. function dsdx=slipODE(s. y(tn1)./((D/2. Without this symbol the matrix multiplication would involve the inner products between rows and columns.*(1+S/D-cos(x))).*cos(x)))]. However if no match is found a new figure with the name of the desired type is created and set to current. plotA=plot(N(:.*tan(d)). First the program calls the newFigure function which was created to check whether the user desires to have the data plotted on the same axes./((D/2).) The initial condition is σ0 which is the mean normal stress at the position of application of P0 ( Eq. the Dormand-Prince pair.a SlipStickFun.*(pi/2-x-v). and uses the text function to display the user input data: title('Maximum Pressure Vs Roll Gap'). It is a one-step solver in computing y(tn). F=[y-(4. ode45 is the best function to apply as a "first try" for most problems [23].2. in this case to 'Maximum Pressure Vs Roll Gap'. division or power operations need to have '. In general.'YData'). % Get the plotted data yData = get(plotA. The function searches all the figures open for a figure with the name of the current type of plot. it needs only the solution at the immediately preceding time point.*(cot(((x+v+pi/2)/2)-u)cot(((x+v+pi/2)/2)+u))).N(:. If more than one exist the last one created is chosen.1).6.*(1+S/D-cos(x))). After the angle α is attained the value is used in calculating the pressure at such angle by solving the differential equation of the pressure distribution with slip ( Eq.m file.8. The pressure gradient values are represented by y while angular position θ is represented by x. y=V(2). If such figure exists it is chosen to be the current figure.'Maximum Pressure Vs Roll Gap'))./((D/2. Following the data is plotted by using the plot command: %call the figure choosing function. The equations are stored in a vector where any multiplication.*(2.07.'XData').*(cot(((x+v+pi/2)/2)-u)cot(((x+v+pi/2)/2)+u)))]. The following code labels the axes. figure(newFigure(handles.2)). % returns the max value in x direction TPosY=(max(yData))*0. y-(K.*cos(x)-1-S/D). xData = get(plotA. % returns the max value in y direction Tsp=TPosY*.

%print user variables on the graph text(TPosX. text(TPosX. 3.0 Mpa.TPosY-TSp*4. ['Po= '. 3. Compactibility is normally assessed by the relationship between compact strength and a process variable. ' MPa']). ' mm']).0 mm. gap size of 1.6 demonstrates pressure distributions for two powders. for a set of parameters. Although it is very difficult to measure the nip angle.Parameter Variation Analysis The compactibility of a granular solid is defined as the ability to be transformed into a compact of a certain mechanical strength.0.20. It defines one of the limits for the region where most of the compaction is believed to take place.0. ['\mu= '.TPosY-TSp*2. Fig.num2str(d*r2d). if only internal friction angle increases the nip angle increases and as a result more powder is drawn into the space between the rolls yielding a higher density compact requiring greater roll pressure.8 System Behavior . 3. 100 Mpa) yield results that do not correlate with experimental data. Similar methodology was used to represent variations of pressures based on other parameters. literature exists and states that the model provides a good estimate of the nip angle. 30 .0. text(TPosX.num2str(Po). Wherever possible experimentally gathered powder properties were used in the Johanson Model to compare the effects of parameter variation. The experimental data was collected using classical die compaction for compressibility and annular shear tester for internal friction and wall friction [25].num2str(tan(W))]).0. Although. The model provides reasonably accurate values of basic operating parameters such as roll force and roll torque for granular solids that exhibit high coefficient of friction against the roll surface and middle and high values of compressibility constant.8. ['D= '.TPosY-TSp*5.0 mm and initial feed pressure of 1. ' Deg']). ['K= '. ['\delta= '. usually the maximum force or pressure applied on the powder during the compaction. AvicelPH102 with lubricated wall and Lactose in a roll press with roll diameter of 130. text(TPosX.TPosY-TSp. text(TPosX. Figure 3.0. Very compressible materials (low K values) and high compaction pressures (ie. Generally.1 Nip Angle The nip angle is an important boundary information for other models for rolling compaction of powders. Although powder properties such as internal friction angle and compressibility are not independent of each other. Therefore it is important to become familiar with the process and powder parameters influence on the behavior of this angle. Thus.num2str(K)]). other process related factors can effect the mechanical strength of compacted powder [24]. with errors over 50 % [8].TPosY-TSp*3. it is an essential and fundamental property of a tablet mass and a determining factor for successful tablet production.num2str(D). The results are in agreement with experimental data especially for gravity fed roller presses [8]. their effects on the system can be used to predict system's behavior for similar powders.

3.21 Nip Angle vs Wall friction In Fig.21. it is observed that the nip angle decreases significantly for materials with low compressibility. Fig. As for very compressible materials. 31 .Fig.22. 3. is observed by increasing the coefficient of friction between the roll wall and powder as shown in Fig. or high K value. 3. but not nearly as strong. 3.20 Nip Angle vs Internal Friction Similar effect. according to Johanson there may not exist a region in which slip occurs.

Maximum pressure is directly affected by the feed pressure [1]. where the change of feed pressure significantly increases the pressure exerted on the powder. It is also the important factor in predicting final compact properties. Fig.2 Maximum pressure The pressure distributions for different powders have similarly shaped curves over the time of roll contact with maximum pressure appearing in the narrowest part of the gap. Therefore.6.Fig. angular position 0. one can assume that maximum pressure is a good representation of the general trend of pressure distribution in the nip region. Fig. as displayed in 32 .8. the nip angle does not significantly depend on the magnitude of dimensional parameters. the nip angle fluctuates only a few tens of a degree while the press undergoes a considerable change in roll gap to roll diameter ratio.23 Nip Angle vs Roll Gap 3. 3. roll gap and roll diameter. 3. This is especially evident in a system that requires relatively low compacting force.22 Nip Angle vs Compressibility Surprisingly. 3. As demonstrated in the following figure.

24. the feed pressure for a roll press with rollers of 130 mm diameter is in the range of 0. if the gap is too large too little powder may enter the nip region where poor compaction is expected.06 Mpa [1]. Fig.04-0. Feed Pressure Generally. As for the instance when the feed pressure is taken below 0. As the gap size becomes smaller the pressure rises exponentially to very extreme values which will unlikely occur in reality due to buildup of powder prior to the nip region (overfeeding).25 Maximum Pressure vs. while the roll diameter has much less of an effect. 3. This phenomenon may be related to the fact that the powder needs to be fed into the roll gap with a pressure above a certain limit. The pressure results in that date seem to be reasonable.25 displays effects of gap size parameter which according to Johanson is the most influential press dimension in determining the pressure in the nip region. Fig.0275 MPa. If he or she is using a roll press type that allows for 33 . On the other hand. Fig. Roll Gap Size Using the information from the above graph the roll press operator is able to predict the behavior of the powder. 3. 3.Fig.24 Maximum Pressure vs. otherwise compaction will not occur. the resulting maximum pressure (Gap=1mm) becomes negative. 3.

and as a result of Johanson's assumption of mass conservation. the pressure (Force/Area) decreases. a denser compact is expected resulting from an increase in maximum pressure.26 Maximum Pressure vs. Wall Friction Coefficient The curve in the above plot reverses its trend between coefficient values of 0. 3. 34 . Therefore. In this case the roll surface may need a mechanical cleaner.adjusting the gap size the desired compact density can be achieved by adjusting the separation height of the rigid rollers until the optimum pressure required to compact the powder is achieved. 3. Occasionally there is a problem with material gluing to the roll surface resulting in unwanted film and negatively influencing press performance. As mentioned before this pressure is obtained experimentally using tablet compaction instruments. Fig.27) displays the effects of compressibility factor variation on maximum pressure as well as the effect of increasing the internal angle of friction. As wall friction increases the nip angle increases (Fig.5. the other ones are the neutral angle 0 and the roll width which stay constant for this simulation. Rough rolls increase the force that drags the granular solid into the region of compaction. 3.0 percent. Fig. The next graph (Fig.26 shows the effects of friction between roll surface and powder.1. The nip angle is one of the boundary points of the contact surface. This is a model phenomenon which can be explained via the relationship between rate of change of force and the rate of change of contact surface area.4 and 0. if the nip angle increases the contact surface increases and if the rate of this area increase is greater than the rate of increase of roll force.5 .21). 3. The other solution is to add a lubricant such as Magnesium Stearate to the bulk powder in concentrations of 0. or a lubricant directly applied to the wall surface. In the case of the other type of press which is equipped with a hydraulic roll force adjustment ( lacks direct gap size adjustment) the same graph can be used to deduct the gap size which may be utilized in verification of process calibration.

3. the most important result of the Johanson model is that it provides the value of Nip Angle. mass conservation assumption is rather simple and it does not accurately describe the heterogeneous flow of material undergoing compaction in the nip region [1]. It is clear that a wide variation in press output exist when different materials are used in the same compaction process configuration. if the roll gaproll diameter ration (S/D) is much less than 1.Fig. 35 . Moreover.27 Maximum Pressure vs. However. As for the nip angle. However. In many cases. especially at the point of transition where high stress values are permitted and the bulk material law remains unchanged [7]. but it is often desirable to work with the principal stresses for more correct stress distribution. The most influential press dimension in determining the maximum pressure is the roll gap (S). The rate at which a load is applied to material can affect the results obtained. Furthermore. increasing powderroll friction increases the effectiveness of the process. One can further deduce that the feed pressure has no effect on the nip angle at all. Material Compressibility 3. In his method. and wall friction (µ).9 Conclusion Compactibility is often assessed by the relationship between compact strength and maximum pressure applied to the powder during compaction. which is often used as a boundary condition for other analytical and numerical models. the nip angle seems to only depend on the following material properties: compressibility constant (K). the variation of roll velocity relative to the feed pressure (screw feeder velocity) is tolerable if it is within a certain range where the strip of compact produced exhibits enough cohesion and mechanical strength [5]. Moreover. Johanson does not consider velocity of the rollers which has been demonstrated to affect the compaction process [1]. however in reality this is probably not the case. in rolling compaction the roller speed is directly linked to this phenomenon. The discrepancies between Johanson method and experimental results may be due to the use of simple material material yield criterion for both slip and no slip regions. due to simplifications made while modeling powder behavior resulted in the model's inability to represent the system correctly. effective angle of friction (δ). The other disadvantage of the model is that it only uses the mean shear stress (σ = (σ1 + σ2 )/2 ).

powder) tan φ = µ µ .internal (effective) angle of friction φ .roll torque for one roll S .coefficient of friction ( roll surface .25] .volume position at θ = 0 W . However. Nonetheless.force factor K .bulk density at θ = α γm .roll gap T .volume position at θ = α Vm .wall friction angle ( roll surface .torque factor Vθ .roll separating force RT . It also doesn't incorporate the effects of powder cohesion and its change with density.acute angle between direction of σ1 and tangent to roll surface 36 . Moreover.bulk density at θ = 0 ∆L .nip angle γ .bulk density of granular solid γθ . In conclusion.vertical pressure at angular position 0 P0 . it is one of the first models to allow engineers to analyze the process and allow an operator to predict initial step parameters in a iterative roll press calibration procedure.element of arc length δ .roll diameter F . due to aforementioned assumptions and simplifications it does not provide sufficient simulation of the process. the Johanson model is considered the corner stone of the study of rolling compaction of powders.bulk density at θ γα .10 List of Symbols D .powder ) arc tan µ = φ ν .the relationship between these two parameters creates an envelope of possible values which will have minor effects on the compaction as long as compact is created.horizontal feed pressure RF . the model does not account for the change of the friction coefficient of wall surface-powder interaction which is directly dependent on the change of the density that varies greatly as the powder becomes compacted [8. 3.volume between arc length segments ∆L at position θ Vα .roll width α .compressibility constant for granular solid Pm .

σ .major principal stress (y) σ2 .mean normal stress in granular solid σ1 .angular position θ0 .minor principal stress (x) σ0 .feed angle 37 .stress at nip angle θ .mean normal stress at a point of application of P0 σα .

1 Slab Method Although the rolling process is carried out at low speeds. as more complex powder behavior characteristics are implemented the ability to analytically solve the resulting differential equation decreases considerably. The advantage of this model is that it provides information about the two principal stresses unlike the Johanson model which only describes the mean stress. The objective of the slab method is to provide an analytical model for powder compaction which takes into account powder behavior and equilibrium equations representing forces exerted on a the powder in the nip region. If possible such analytical relationship would provide an operator the pressure exerted on the powder which compared with experimental data can provide predictable compact properties such as density and strength. 4. It has then been adopted to rolling compaction of metal powder rolling by Katashinskii [9]. 4. The main difference between the different applications of slab method to roll compaction is the type of material yield criterion is implemented which in case of sheet metal is the Von Mises yield criterion. However.1 Introduction The slab method was developed by Siebel and von Karment for sheet metal forming [8].4 Slab Method 4.2 Modeling Rolling Compaction with Slab Method y D ω POWDER α θ dθ hf dx ω COMPACT x σf σ0 h0 NOT TO SCALE Fig. It also has potential to include characteristics of powders such as cohesion and global friction between particles. it is natural to assume 38 .

Internal friction angle (δ). These boundaries can be described as straight lines tangent to the roller contours due to strip's small width. P as a function of position 39 . Relative Density (ρ =Apparent/True). σy) . ρ . Yield function Tribologic Parameters : Powder .2). From the stresses. Angular Velocity of Rollers (ω) Roller Pressure (P). At the material-surface contact point friction exists which creates shear stress. 4. τ.roll surface friction definition (µ) These elements can also be categorized into groups of unknown and given data: Unknown parameters : Stress in x and y (σx.2 Free Body Diagram of Slab (Entry) The general problem includes the following aspects: Process Parameters : Pressure of feeder (P0). PdS τdS θ dx σx(x + dx) (h + dh) h + dh σxh h θ Fig. only the stresses acting on the four sides of the trapezoidal slab need to be taken into account. Gap size (hf) Powder Parameters : Cohesion (β). dx. 4. The compaction zone is divided into differentially small slices bounded at top by the roller surfaces (Fig.that static analysis model is a suitable approach. Nip Angle (α) Geometric Parameters : Diameter (D). If the forces of inertia acting on the material being formed are ignored. Than by resolving the forces into horizontal and vertical forces equilibrium equations can be written. the forces are attained by multiplying the direct and tangential components by their respective surface areas.

A key issue exists here because wall friction affects the pressure exerted on the powder and yield (densification) is a function of pressure. but for dense materials it approaches 40 . ω. ω. However. And as mentioned before friction is a function of density making the wall friction directly related to the pressure and vice versa. Yield Function. As for pressure. α. D The desired function is P=f {P0. write down the constitutive equilibrium equations. The circumference of the roller is much larger than the contact area. Hf.Given Parameters : β . 4. At the entrance the θ = α and h = h0 while at exit θ = 0 and h = hf. apply boundary conditions and yield criterion to formulate a governing differential equation. There exist a number of different criterion that represent yield limits of materials. either of these experimental methods are currently not very verifiable. The assumption for the following example are: • • • • • • Rollers are rigid. initial stress at entrance (P0=σ0). Stresses are distributed uniformly within slab elements. cohesion and wall friction properties are dependent on the density of granular material. the major source of stress is the pressure (P0) produced by the feeder from the entry end and by the compact from the exit end. Yield Function). The following few have been used in metal and powder research: • Von Mises ( used for solids )  2 2 − x  y =Y 2 x y Eq. µ. The friction condition between the powder and roll surface is assumed to be constant for sheet metal rolling analysis. However this assumption is not believed to be correct as internal friction.2 Von Mises Yield Criterion Elliptical in nature along the x axis. Roll pressure is equal to the principal stress in the y direction The boundary conditions include nip angle which can be obtained from Johanson model or measured experimentally. Powder(β. δ. 4. The yield criterion is a major element of modeling compaction as it is the definitive element by which we classify materials. hf. µ} Eq. Plane sections remain plane as they pass through the rolls (plane strain). Friction force in the contact area follows Coulomb's law. D.1Desired Relationship Equation The general approach is to define the assumptions.

Note that as ν goes to 0.[13] This model is an extension of Drucker-Prager yield function for admissible stresses. Drucker-Prager Cap model describes a cohesive powder more precisely than the previous models. Although it may be possible to use along with numerical integration. This model is predominantly used in modeling of metallic materials because they exhibit little change in volume.Downey Yield Criterion   Eq. The following procedure is applied to the nip region.3. For this reason this model is very difficult to implement in the Slab method. Horizontal forces: hdh x  xdx −h  x  x≈ 41 . 4. Slab method implementation by Dec [8]paper uses this yield function which has traditionally been applied to metal powder modeling. • Kuhn . 4. • Drucker .4 Poisson ratio as a function of density.straight lines. Due to the plain strain and roller diameter assumptions the maximum principle stress is equal to roll pressure for small angles (σy = P). 4.3 Drucker-Prager Cap model.3 Example Slab Method Formulation Using the above assumptions the following calculation procedure can be used to begin the initial formulation of the slab method as applied to rolling compaction.5 and ρ increases to 1 this model's behavior approaches Von Mises model. 4.3 Kuhn .Downey ( used for porous media )  2 2 −2    x  y =Y 2 x y Eq. 4.Prager/Cap model ( used for porous media ) Fig. Takes in account the change in density. It consists of three equations each used in different states of the material as demonstrated by the three surfaces in Fig.

∑ Fx =0⇒ d x h  −PdS sin − dS cos  dx With the following geometric relations: dS= dx / co dx tan θ θ sθ dx Fig.≈ x x hdh x  dx hdh− x  x h ≈ x x h x x dh x  dx h x dx dh− x  x h ≈ x d dh d  x  h x dh dx dx dx zero dx dh ≈ x h dx dx ≈ d x h  dx  Adding the horizontal components of the roll pressure and shear the following expression is derived for the equilibrium forces in the x direction. 4. 4.5 Coulomb Friction Relation The expression can be further simplified d  x h =P dx tan− P dx dx d  x h =P tan−dx dx 42 .4 Geometric Relations a substitution for contact surface dS is made to yield: ⇒ d  x h dx dx −P sin − cos  dx cos  cos  and simplifying : ⇒ d  x h −P dx tan − dx dx Now with the assumption of Coulomb friction between the powder and the roll : = P Eq.

and finally since the slab is symmetric about the x axis the equation representing the balance of forces is: d  x h =2 Ptan − dx dx Eq.6 Force Equilibrium Equation in X direction Now similarly the vertical force equalibrum expression is derived : ∑ F y=0⇒PdS cos  dS sin −P y dx dx cos   sin −P y cos  cos  substitute the surface dS in terms of q and simplify: ⇒P ⇒P dx dx tan −P y use the coulomb friction relation to write the expression in terms of P and θ : ⇒P dx P dx tan −P y and by factoring out the roll pressure we get: P y =P1 tan dx Expanding the equationg to include the whole slab (symmetry about the x axis) yields: P y =2P1 tandx For small angles P y is approximately equal to σ y:  y =2 P1tan  dx Rearranging the equation gives the expression for roll pressure in the y direction: y 21 tan  dx Eq.6 and Eq. 4.7 Force Equilibrium Equation in Y direction P= Combining equilibrium equations ( Eq. 4.7 ) : d  x h y =2tan  − dx dx 21 tandx and simplifying yields the force equilibrium expression for the whole slab: 43 . 4. 4.

Yield equation provides this required relationship between σ x and σ y. These two powder properties are directly related to density. the method does not provide information about the tapped powder zone prior to nip region. There exists very little evidence for experimental measurement of the nip angle as well as verified application of the Johanson method of attaining this data. especially in powder compaction process.d  x h  y  tan − = dx 1 tan Eq. It is the main mechanism by which the powder undergoes compaction. However. Most recent work applying the slab method to powder compaction is done by 44 . If the friction between the roller and the powder is too low. For this there are a number of options varying in complexity and level of correctness for a given material.4 Conclusions The slab method displays much promise to solve this half-century old problem of rolling powder compaction.8 Force Equilibrium Equation for Slab dx in terms of angle θ: dx=R cos d  substituting for dx yields: d  x h  tan − = y Rcos   d 1 tan  The above equation needs one more step to convert it to usable form of one unknown parameter (σ). 4. The friction phenomenon in powder compaction emanates mainly from two sources: interparticle friction and powder-die wall friction. The proper characterization of friction is central to the success of simulation procedures. Moreover for further investigation the equation relating hight and angle θ is : h=h f R 1−cos   and for small angles this expression can be approximated to: h=h f R 2 The resulting differential equation combined with boundary conditions may or may not be solvable by hand therefore a Runga. 4.Kutta or other numerical methods can be used. even with the help of a screw feeder. It was shown by Michrafy that density variations in compacts made via the granular material compaction are mainly attributed to friction [14]. the powder will not be drawn through the roll stand. Iterative solving may be necessary to apply experimental data to the model. As a powder is continuously shearing due to applied pressure its tribologic properties change and as a result effect the transformation of pressure from roll through friction. It also assumes that the boundary condition information for the nip angle is available.

height of compact equal to roll gap height h0 . This coefficient serves as a substitute for a yield criterion by representing the relative amount of pressure transmitted from the σx to σy.feed pressure in the x direction Px .Schonert and Sander [10].major principal stress in y direction σ0 . The major hope of using the slab method is that it may provide a mathematical formula that can be used without the need of a computer.yield α .pressure in the y direction P .powder ) arc tan µ = φ ν .horizontal stress at the beginning of compaction σf .nip angle β .5 List of Symbols dx .Poisson ratio ρ .angular position 45 .major principal stress in x direction σy .powder) tan φ = µ µ .change in height from slab to slab hf .roll pressure R .horizontal stress at the end of compaction σα . perhaps only a four function calculator.wall friction angle ( roll surface .stress at nip angle θ .pressure in the x direction Py . 4.internal (effective) angle of friction φ .coefficient of friction ( roll surface .roll radius h .bulk density of granular solid σx .roll diameter P0 . Unique to their approach is use of the normal to shear stress relation (transmission coefficient) in a powder.height of powder at start of compaction Y .height of powder section dh .slab width dS .cohesion δ .slab surface in contact with roll wall D .

roll velocity 46 .shear stress ω .small change in angular position corresponding to dS τ .dθ .

Finite Difference Method (differential equation solver) CVM . powder behavior.2 Modeling Rolling Compaction with ABAQUS The ABAQUS file is an instructions code providing all the necessary information for the program to create the model and run the simulation. although it is more like art than science. Implicit methods do not place an inherent limitation on the time increment size. Implicit simulations typically take orders of magnitude fewer increments than explicit simulations. The explicit central difference method is used to integrate the equations in time. Simulations generally take on the order of 10. ABAQUS is composed of two different packages: ABAQUS/Explicit and ABAQUS/Standard (implicit). ABAQUS provides automatic mass scaling but it is often more desirable to choose one by the user. The main difference between these two procedures is that explicit methods require a small time increment size that depends solely on the highest natural frequencies of the model and is independent of the type and duration of loading. therefore discrete mass matrix used in the equilibrium equations plays a crucial role in both computational efficiency and accuracy. For this fact nearly realistic computer experiments are possible.000.000 increments. 5. but the computational cost per increment is relatively small. The explicit dynamics method was originally developed to analyze high-speed dynamic events that can be extremely costly to analyze using implicit programs. However.Finite Element Method for Continuum Media (solids) FDM . [12] The finite element method seems to be the most versatile approach because it takes account of substantial information about geometry.1 Introduction There exist numerous types of finite methods available. the cost per increment of an implicit method is far greater than that of an explicit method [26]. Quazi-static analysis incorporates rate-independent material behavior where time is not very important.5 Finite Element Method 5. the most prominent are: FEM . While all these may be great modeling methods each one is suitable for a particular application. The explicit dynamics procedure is often used for quasi-static simulations involving complex non-linear effects found in complex contact conditions. The FEM suits the problem at hand and is implemented in the ABAQUS commercial FEA package. since a global set of equations must be solved in each increment. • • • Node definition Element definition Surface definition 47 .000 to 1. some equations can't be solved by explicit integration and thus requiring the use of implicit method. increment size is generally determined from accuracy and convergence considerations. and frictional conditions. Although.Control Volume Method = CFD Control Fluid Dynamics = FDM with integration on the control value. The mass scaling is used to adjust the mass of the model artificially to reduce the solution time.

they are planestrain continuum elements with reduced integrations (CPE4R). velocity of roll. Generally for a two dimensional model. reaction force. Two approaches may be used to solve the rolling compaction. etc) General application in ABAQUS starts with the definition of the objects involved. The elements are created from four nodes in a systematic fashion. strain. The mesh moves as if it was the powder. this technique was applied to a thick metal sheet. 5. dynamic explicit. To prevent the effects of impact from the initial contact between powder and roll.3 Lagrange Approach A pure Lagrange method is based on the fact that the elements in a mesh represent the powder. Because the complexities of the powder behavior. material. Fig. Following. and since the press is symmetric about the x axis.1 Lagrangian Mesh (Initial Contact Point) 48 . is the definition of the material and then the boundary conditions ( roll is defined as a rigid surface. The mesh is first defined. velocity. symmetry is assumed to decrease design and computation time. friction etc. method based on the Lagrange approach and the another which is based on the Lagrange-Euler technique. and as the powder undergoes stress and strain the elements directly represent the result. etc) Define output results ( all.) The last step is to define the desired data and acquisition frequency as well as the time limit of the procedure.• • • • • • Assign element properties (rigid body. The example of this technique assumes that the material is formed into a slab and given a velocity. This block then travels into the roll gap where it is compressed. etc) Define material properties Define boundary conditions Define contact surfaces Define step properties (number of increments. the linear velocity of the powder is taken equal to the associated velocity of the roll. Some information is given in the following. 5. dynamic explicit.

Central to this method is the fact 49 . 5.2 Sheet Metal Rolling .Steady State Reached This approach is not very applicable to powder compaction due to its inability to address severe mesh distortion exhibited by highly compressible materials. 5.3 Eulerian Mesh Adaptive meshing is an ABAQUS/Explicit tool that makes it possible to maintain high-quality mesh through out an analysis. 5. even when large deformations occur by allowing the mesh to move independently of the material [12].4 Euler-Lagrange Approach Fig. It represents irreversible strains in the sheet after a steady state is reached.Following figure is the result of simulation of rolling of a thick metal sheet. Fig. The following approach was investigated. This technique combines the features of the often used pure Lagrangian analysis in which the mesh represents the material and Eulerian analysis in which the mesh is fixed spatially while the material flows through it. This method is often referred to as the Arbitrary Lagrangian-Eulerian (ALE) analysis is extensively used in fluid flow analysis.

The initial point of powder-roll contact (nip angle) is the node farthest away from the gap that the roll surface is in contact with. The next figure is an example of a failed run due to extreme distortion of the mesh causing the program to terminate prematurely. the element shape and position may be altered. The bottom of the mesh is set to be a symmetric boundary. Fig. the mesh is created representing the approximate space to be occupied by the powder traveling between the rolls. As the powder becomes compacted topologically similar mesh throughout the analysis is maintained: no elements are created or destroyed. Initially. 50 . The mesh follows the contour of the rolls inside the nip region as illustrated by the next figure. The top surface of the mesh is set to move or slide freely (Lagrangian boundary) while the left and right surfaces are defined as inflow and outflow (Eulerian boundaries) to allow the material to flow through the mesh. When the model is not configured correctly it is clear that the simulation is not correct.that the mash is remapped when necessary to prevent the analysis from terminating as a result of severe mesh distortion. However. This contact point may shift during the simulation. However with investment of time and correct input data this approach may be successful. 5.4 Contact Area A few investigative simulations were conducted.

After the simulation is correct for a particular powder. 5. Theoretically similar results may be attained for different combinations of input factors. More experimental data is necessary to tweak the FEM model to match the real results.5 Failed Simulation Attempt (Material = Powder) 5. Sadder Kadiri. a new powder should be introduced and examined in the same FEM model to see if the overall settings are good to determine which parameters are powder specific. has successfully utilized ABAQUS/Standard with Drucker-Prager / Cap powder behavior model. Once again the ability of this method to predict the operational parameters of a roll press heavily relies on the input information provided by the user from experimental data. The material behavior is at the center of this problem. in his work on die compaction. 51 . it has promising ability to closely model powder rolling compaction.Fig. According to literature [8]. and tribologic conditions. and as a result improve in process and equipment optimizing that may outweigh the costs of initial investment. finite element method offers most attractive approach because incorporates complex information about geometry. Although it requires expensive computer and software resources. powder behavior.[25] It is believed that the same result can be attained with the explicit method.5 Conclusion These form of approach seems to be the most promising but not very practical.

6 Conclusions
This report is an initial investigation into the nature of rolling compaction of powders in the theoretical research area. The Johanson model was utilized to gain general understanding of parameters involved and their behavior with system alteration. Two other approaches were investigated briefly to determine the direction of theoretical roll compaction research conducted at the Centre Poudres et Procédés at the Ecole des Mines d'Albi-Carmaux. It has been concluded that the finite element method is the most promising approach at the moment. Nevertheless, the slab method investigation should not be abandoned as it has potential to be more useful in the industrial setting. On a further note, these methods need to be explored in parallel with powder characterization studies considering that particular materials are at the center of the problematic issues in modeling their compaction in a roll press.

6.1 Process Remarks
The following are process remarks taken from experiments with Johanson model and literature. Initial feeding pressure has a definite effect on the final stress on the powder, moreover the applied stress heterogeneity is depended on the heterogeneity of feed pressure. For example, when using a screw feeder local pressure fluctuations are observed in the feeding zone corresponding to the period of the screw in sinusoidal fashion [3,5]. Moreover, fine powders have poor dearation ability especially while using pressure to feed the press. The air is squeezed between the particles and has difficulties to leave the mass of the powder being compacted which negatively influences feeding and therefore compaction exhibited by variation of density and strength of compact. Moreover there exists a danger of compact delamination or even explosion due to highly pressurized air bubbles escaping the compact in the exit region. In such case vacuum dearation system is suggested to possibility reduce these problems. Furthermore, there may exist a problem of powder leakage, where the loose material exits the space between the rolls. This uncompacted powder needs to be recycled for the process to be efficient [5]. As for process variables the gap size seems to be the most influential process parameter for it greatly changes the pressure exerted on the powder. Wall friction is another parameter that could be altered to adjust the compaction pressure by the use of lubricants or roughing of rolls. Roll velocity variation effects the roller minimally relative to the feed pressure as long as the compact is produced. With a constant feed pressure, for low roller speeds overcompaction occurs while for high speeds no strip is formed [1]. It is also important to mention that flow of powder in the nip region is not straight forward. The particles move at different speeds depending on their position in the compaction zone. This fact is often omitted by assumption made to simplify this flow to a constant movement of particles relative to the x axis [5]. According to Michrafy the density affects the wall friction as the powder is being compacted [14]. This friction is a function of density which is dependent on the pressing force which, in fact, is partially transmitted by the same contact friction. This circular relationship may be difficult to represent in a analytical approach and is more suitable for a numerical method. Moreover, this wall friction variation is not very easy to measure or represent. At the moment the behavior of this parameter is not verifiable in rolling compaction but seems to decrease in die compaction. In general, under densification internal friction angle increases and cohesion increases and wall friction decreases. 52

The other major issue in the rolling compaction area is the unavailability of accurate and thorough force/strain measurements techniques. For example the measurement of the pressure at the surface of the roll, or the pressure distribution along the axis of rotation are two major goals of rolling compaction research teams. Shear stresses on the wall surface are also quite difficult to measure due to residue buildup and heterogeneous feed pressure distribution. Generally, a hydraulic system is used to maintain the bearing blocks of a movable roller; such system is often susceptible to oscillations and irregularities complicating measurement acquisition and disrupting compact homogeneity. Not very well understood part of the process is the feeding zone where the stresses exerted by the rollers is very small, (ie. less than 0.1 MPa) and is not measurable by piezoelectric transducers placed on the roll surface [5]. Another parameter which is yet to be measured experimentally is the nip angle which is often used as a boundary condition. With out these quantitative results the accuracy of the modeling technique is only compared to the final compact and does not give us much knowledge about the phenomenon of powder behavior undergoing compaction in a roll press.

6.2 Powder Characterization
Before rolling compaction model is created a few issues need to be analyzed. One is the fact that currently there exist limited ability in defining the behavior of powders. All the models mentioned in this paper use many mechanical property theories of Jenike regarding the flow of bulk solids which are fairly good at the beginning of compaction and change significantly in compression zone especially when the material is closer to the solid state. However, this is all that is available at the moment and is applied as a result. Internal angle of friction, bulk density and real density (using helium) are the few parameters believed to be fairly constant. Other parameters such as compressibility, contact friction are not so easily definable thus providing much of the headaches for the research community. In terms of internal friction and particle cohesion, there exist two major methods of attaining this information: Jenike shear tester and the annular ring shear tester. A preference is given the utilization of the ring (annular) cell shear tester rather than Jenike shear tester due its reliability and ease of use. As for measuring the friction coefficient between the powder and a contact surface both of the above mentioned tests can altered to take such data. It is difficult to estimate the quality of the information provided by these experiments for powder-wall surface behavior, but they are the only available quantitive source. Another issue is the shear yield limit representation. There exists a number of different yield criterion but their usage varies due to their complexity and assumptions taken. Drucker-Prager/Cap model appears to be the most extensive in describing yield behavior of powder[13]. The data for this model is collected from diametrical compression, simple compression and compaction in an instrumental die [8]. The other end of the process, the final compact characterization, is also problematic. Unlike a tablet compact, the hardness testing is not easy for a slab of compact because a wide area with heterogeneous strength and density is observed whether a gravity feed hopper or a screw feeder are used. For this reason the compact needs to be tested along many points along the width and the length of the sheet but the most optimum positions are yet to be studied. Furthermore, the choice of hardness testing method is not clear either because standard tableting tensile strength test is generally no applicable, so a measurement such as the indentation test could be employed. Similarly, there exists very 53

little evidence for high quality density measurement.

6.3 Models
Rolling compaction of powders is not a simple problem as it was theoretically studied for over fort years and is still one of the major research topics in powders. Johanson was one of the first investigators into rolling compaction of non-metallic granular media; his work serves as the cornerstone of research in powder compaction field. It was chosen as the initial step in this study for its simplicity and recognition. In previous studies the model has been found moderately successful with good results for powders exhibiting low compressibility [11]. The model also gives insight into the general trends in parameter variation which can be used in estimation of minor system adjustments or comparison of compaction effects of same family powders. The slab method is more complicated than the Johanson model because it can include more mechanical properties of the powder (cohesion, wall friction function, etc) and analyzes two principle stresses present. Currently for the method to be successful numerical differential equation solver is used due to high complexity of the governing equation. Schonert was able to successfully apply the slab method but his work only presents results for a very hard powder with low compressibility [10]. The difficulty of this approach arise in the application of yield criterion and number of factors included such as cohesion, friction, gravity, and inertia. ABAQUS software is rather expensive and generally has a large learning curve. It may be a bit cumbersome to use it in an industrial setting, therefor a custom FEA program specific to the case of rolling compaction would be of best interest. However, this step is only reachable after a known general FEM modeling package is applied successfully to the problem. The advantage for creation of such tool is that for almost every powder a new mesh and new powder behavior need to be defined and automating or improving the current methods is desirable.

6.4 Future Considerations
Besides the Johanson's limited success, none of the above mentioned models have investigated the granular solid behavior in the region where the powder is mainly compacted by the feed pressure just prior to the compaction zone. The correct representation of powder in the this feeding zone needs to be investigated further because the results may improve the boundary conditions required for the models studied. All the models discussed here assume Mohr-Coulomb friction which is quite a reliable method for classifying friction between solid materials but has not been studied much for granular solids. Wall friction in powders - solid interactions is believed to be related to internal friction, perhaps this type of approach could be beneficial in postulating boundary information. Another technique that has not been discussed yet is the use of particle simulation where computer model of each powder particle in a bulk is created and accounted for through out compaction. This concept is rather difficult to achieve at the moment due to limitations of computing systems and little knowledge of the micro interactions between particles. This approach would incorporate the heterogeneous flow of particles in the nip region. This approach may be the leading method of simulating powder but that may not happen for ten or twenty years. 54

The models discussed may converge some day to simulate reality very closely; however, this will largely depend on our abilities to more precisely characterize granular solids.

55

Thank you to Maryse for being the most energetic and helpful administrative person I ever met. 56 . a source of comic relief and a motivating gym partner. Thank you to Stefan Haas for the long discussions about powders as well as philosophizing about social aspects of Europe and US.7 Acknowledgments Thank you to Abder Michrafy for being a great mentor and a friend. For shearing his mathematics knowledge and scientific research and presentation techniques. Thank you to Sadder Kadiri for answering my long and speculative questions in the field of powder compaction and providing experimental data for my program. Thank you to Maxime for being a dear friend and a great neighbor with an oven. Thanks to David Leach(Gary) for being a great mate.

” ASME.” Powder Technology 130 (2003) 272 -276 [ 8 ] R. Sheskey.P. Lentz. Schonert . “Analytical determination of specific pressure during the rolling of metal powders. (1990) p.” Journal of Materials Processing Technology 124 (2002) 178-182 57 . Michrafy. P. Tchoreloff “Modeling the compaction behaviour of powders: application to pharmaceutical powders.R. P. Gao. G. L.” Powder Technology 105 (1999) 282 -287 [ 18 ] M. (2000) [ 2 ] O. 22 [ 20 ] J. 220 [ 5 ] P.C. Principles of Powder Technology. Simon “Roll press design-influence of force feed systems on compaction. 4. Rhodes. G. Polli “Roll Compaction Granulation of a Controlled-Release Matrix Tablet Formulation Containing HPMC” Pharmaceutical Technology (1999) [ 4 ] M. [ 12 ] Abaqus 6. Tundermann. Sander. No. 195 [ 17 ] K. A. Ramalingam.” To be published in Chemical Engineering Research and Design.J.R. 215 [ 19 ] J. Katashinskii. “Shear stresses and material slip in high pressure roller mills. J.” Powder Technology 130 (2003) 257-264 [ 3 ] P. (1990) p. S. Schonert . Singer “The flow of iron powder during roll compaction ” Powder Metallurgy. Journal of Applied Mechanics 32 : series E. J. Sackett.8 References [ 1 ] O. Rhodes. Guigon. A. (1968) Vol. Guigon. No. Principles of Powder Technology. Tolle. John Wiley & Sons Ltd. Principles of Powder Technology. (1990) p. Zavaliangos. Michrafy.Y. John Wiley & Sons Ltd. 12. P. D. (1990) p. Chen “Analysis of symmetrical cold rolling with varying coefficients of friction. Singer “Deformation and densification during the rolling of metal powders. Dodds “Wall friction and its effects on the density distribution in the compaction of pharmaceutical excipients. PhD Thesis.” Powder Technology 122 (2002) 136 -144 [ 11 ] Mise en forme des materials .H. O. Sander. “Comparison of various methods of powder compaction in roller press. Guigon “Correlation between powder-packing properties and roll press compact heterogeneity.T. “Flow and compression properties of feed solids roll-type presses and extrusion press.J.E.J.” Powder Technology 130 (2003) 41-48 [ 6 ] J. K. Maher. Tzou. Interaction between Feeding and Compaction During Lactose Compaction in a Laboratory Roll Press. John Wiley & Sons Ltd. (1965) [ 7 ] K. Johnson. Tundermann. Principles of Powder Technology. Barber. S. G. John Wiley & Sons Ltd. [ 15 ] M. Rhodes.” Powder Technology 127 (2002) 257266 [ 14 ] A.” Yung Ta Institute of Technology (2001) [ 22 ] H.R. 23 [ 21 ] G. “A rolling theory for granular solids. C. “Theoretical study on the cold sandwich sheet rolling considering Coulomb friction.Kadiri. A. Ringenbacher. 100 [ 16 ] M. Université de Technologie de Compiègne. Rhodes. No.C. J.” Poroshkovaya Metallurgiya (1996) 1-10 [ 10 ] K.2 Manual [ 13 ] A. Hauser.” Powder Metallurgy. U. S. Simon. U.J. G. Sommer. Simon.” Powder Technology 4642 (2002) [ 9 ] V. “Operational conditions of a screw-feeder-equipped highpressure roller mill. Cunningham. (1969) Vol. Dec. calcul/elasticitè – French textbook. 11.H.E.

247 [ 25 ] S. Inc. Marcel Dekker.P.alexanderwerk.. Pharmaceutical Powder Compaction Technology.com . Choudhry and T. CA.1 [ 24 ] G. [ 26 ] S.1.” MARC Analysis Research Corporation.450 Release 12. USA (1997) [ 27 ] www. Alderborn and C. Wang.Manufacturer of small industrial machines and apparatus 58 . S.(1996) p. Nystrom.[ 23 ] Matlab Online Manual version 6.0. Palo Alto. Werheimer “Comparison between the static implicit and dynamic explicit methods for EFM simulation of sheet forming process. Kadiri's ongoing thesis work on classical die compaction.B.

1 0.018 0.016 0.1 Node Numbers The next figure is a representation of dimension of the model.3°) 3.012 312 305 298 291 284 277 270 263 256 249 242 235 228 221 214 207 200 193 186 179 0.022 315 308 301 294 287 280 273 266 259 252 245 238 231 224 217 210 203 196 189 182 0.008 0.[25] Wall friction coefficient greatly depends on the type of material used in the rollers and is approximated to be the given values from available data. Simon thesis. For example.025 0 0.5°) 7.010 0.6°) 4.04 .004 0. [1] All other data was taken from Kadiri's thesis work.006 0.55 g/cm3 39° 0.28 (15.025 0.075 -0.24 (13.31 g/cm3 42° 0.1 -0.002 310 303 296 289 282 275 268 261 254 247 240 233 226 219 212 205 198 191 184 177 311 304 297 290 283 276 269 262 255 248 241 234 227 220 213 206 199 192 185 178 118 111 104 97 90 83 76 69 62 55 48 41 34 27 20 13 6 117 110 103 96 89 82 75 68 61 54 47 40 33 26 19 12 5 116 109 102 95 88 81 74 67 60 53 46 39 32 25 18 11 4 143 136 129 170 163 122 115 108 101 94 87 80 73 66 59 52 45 38 31 24 17 10 3 114 107 100 93 86 79 72 65 58 51 44 37 30 23 16 9 156 149 142 135 128 121 2 309 302 295 288 281 274 267 260 253 246 239 232 225 218 211 204 197 190 183 176 169 162 155 148 141 134 127 120 113 106 99 92 85 78 71 64 57 50 43 36 29 22 15 8 1 0.05 -0.64 Lactose * Monohydrate 75 mm 0.020 175 0. 0.014 314 307 300 293 286 279 272 265 258 251 244 237 230 223 216 209 202 195 188 181 168 161 167 154 160 173 153 166 146 159 172 165 158 152 145 138 151 171 164 144 137 157 150 130 123 131 124 139 132 125 147 140 133 126 119 112 105 98 91 84 77 70 63 56 49 42 35 28 21 14 7 174 313 306 299 292 285 278 271 264 257 250 243 236 229 222 215 208 201 194 187 180 Y [mm] 0.Magnesium Stearate placed on the powder contact surface Avicel PH102 Particle Size Bulk Density Internal Friction Angle Wall Friction Coefficient µ (Angle) Compressibility . 9.75 Avicel PH101 50 mm 0.1 Powder Data Avicel .075 0.K 90 mm 0.2 ABAQUS Source Code The following figure represents node numbering used in creation of elements.06 Mpa [1] for a press with roll diameter of 130 mm 9. for feed pressure for lactose are are 0.0.29 (16.31 g/cm3 42° 0.0 * Taken from O.9 Appendix 9.29 g/cm3 45° 0.000 -0. typical values.125 X [mm] Fig.05 0.125 -0.4°) 4.Microcrystaline Cellulose Wall Lubricant . Values for feed pressure are dependent on a powder.75 Avicel PH102 + Lubricant 90 mm 0. 59 .7-8.19 (11.

Fig. 9.2 Nip Angle 60 .

' ****************************************************** *HEADING ************************ ADAPTIVE MESHING EXAMPLE **This option is used to define properties of solid (continuum) FLAT ROLLING . 8 219.33E06.1.01E06.number of intervals during the step at which the *RESTART *ELASTIC output 1. Units . This example requires a node definition file from the included CD. Increment in node numbers of corresponding nodes from ** --------------------------------element to element *MATERIAL.44 ** **This option is used to generate elements incrementally. copy this newly created master layer to define a block of rpc2D. ** Example of druker prager cap model for material **2. if plane strain is used the argument is the element thickness definition ** **and state to the state (job-name.1100 ft) **3.1 ** element #. including the master layer. ************************ **where N1 is the number of elements in a row.ADAPTIVE MESH." quadrilateral 401. INPUT=node2d.58E06. ** SOIL STRATA D1 (700 ft .W.02E06.abq) and part (.7 ****************************************************** 418. a.4 **Continuum elements begin with the letter "C.MATERIAL=POUDRE ****************************************************** 5. plastic strain *ELEMENT. EULERIAN NODES AT elements. ****************************************************** **usually found in material guides.3 ** states are to be written.0. **If necessary. 382." allow an analysis to be completed up to a certain *** MATERIAL DEFINITION ** point in a particular run and restarted and continued in a *** ** subsequent run with the *RESTART. Increment in node numbers of corresponding nodes from row to row.17 **If necessary.defines the shape and behavior of the element 337. Number of layers to be defined. The default is 1. Poisson's ratio ****************************************************** ** ************************ ** **call the node definition file **Plasticity given must be true stress and true strain *INCLUDE.72E06. Increment in element numbers of corresponding elements from row to row..** elements..N.0.b. 2.5 **"PE. in '. copy this newly created master row to define a *CAP PLASTICITY layer of 200.especially when the previous line ends ** in a layer.E-2.0.0. ************************ **The argument depends on element type **The *RESTART.0.inp **use ABAQUS manual to convert from nominal stress and strain." a plane strain element. Number of rows to be defined.6. ELSET=BAR 448. Increment in element numbers of corresponding elements ************************ from layer *** Description: ** to layer. *** May 2003 **9.1. *ELASTIC **4.1.85E3. **8.created by Abder Michrafy **Repeat this data line as often as necessary. **Young's Modulus.prt) files. **these can change with respect to field variables (ie temperature) **N . and truss elements. and N3 is the number of layers.53E06." 361. The source code for the latest ABAQUS/Explicit with ALE method. *DENSITY ** the element set name is BAR 7.33. 61 .3 **TYPE .restart file is to be written during the analysis. Increment in node numbers of corresponding nodes from *** Marcin Balicki .2 ** abcd represent the node numbers making up the 4 node element 308.0..6 **"4R.45E06. ************************ *PLASTIC **Master element **Yield Stress.42E06.fr layer to layer. **1. Each line will *** Altered the definition of the roll generate ****************************************************** ** N1 ´ N2 ´ N3 elements.65E06.. **6. The default is 1. TYPE=CPE4R 168. 1.36.44.NAME=D1 ** in the row. **7. 47700.ELSET=BAR.balicki@enstimac.0 1. ****************************************************** ** These files. WRITE option is used to write the model **ie. READ option. Increment in element numbers in the row. 9.d 272.c.NAME=C15 **W .1.0..0. INLET AND OUTLET **infinite elements.7.37E06.N=20 *MATERIAL.8 ************************ 434.42E06.0.inp ** elements. Master element #. *** First model using euler method . ****************************************************** **10.0 1. m *SOLID SECTION. **Definition of material used in the SOLID SECTION *RESTART.0. which will for convenience be referred to as the ************************ ** "restart file. including the master row. N2 is the number *** Notes : of rows *** Don't use blank lines. Number of elements to be defined in the first row generated.5E11.02.0.0.9.9 *ELGEN. *** Rolling Compactions of Powders The *** Ecole Des Mines D'Albi ** default is 1. **5.

0. REGION TYPE=SLIDING TOP.NODES/ NODE SETS *** **create a node for defining the roll *NODE.09 **CAP CREEP. NAME=EULER1.7871E+9.1.With roll radius at ..56 0. ****************************************************** ************************ *** *MATERIAL. 7. NAME=EULER2. 1.7 ** a.5e-5. NAME=SURF1. second pair is the center of the circle **circle is drawn in a counterclockwise direction.NAME=RIGID.1134E+9.0.82 *CAP PLASTICITY ** Parametres de la courbe intrinseque ** d beta(°) R epvol0 alpha K 0. GEN 1. REGION TYPE=EULERIAN EULER1. TYPE=ISOTROPIC.b.0 ***PERMEABILITY.ELSET=BOT.TYPE=VELOCITY BAR.00013E+6 .28. 2.NSET=REF 10000.2e-7.0. 1.309. 36.010000 CIRCL..0.8. *NSET. -.02 800.. 2.0. First node in the set. FRONT ** 2 node set labels to be assigned to this node set.1. **relative rigidity of the roller is high so it is completely rigid *SURFACE.GEN 1.82 . 315.5453E+9.05 900. 0.S3 ****************************************************** ************************ **roller definition **arc starts at START and finishes at FIRST PAIR **of circle elements. 0.175 that yeilds a roller surface **speed of 1.426 ***USER DEFINED FIELD ***DEPVAR **1 *DENSITY 7.28. *CAP HARDENING ** Comportement en durcissement ** P eps(vol)pl 0..0. 1. 0.28.1e-2.28.85E3. 9. 2. NAME=POUDRE ** Proprietes elastiques ** E nu RhoR *ELASTIC.1. REGION TYPE=EULERIAN EULER2. 1.0. GEN 44.0.GEN 309. 264. 1 *ELSET. .0146E+9.85.1.GEN 1. ** This minimizes the initial transient disturbance *INITIAL CONDITIONS.0.309. EQN2.FILLET RADIUS=.3028E+9. 0.0 *EQUATION 2. 1 *** **The roller is rotated at a constant angular velocity of 1 revolution per **second (6.0.NSET=BOT. 0. 44.0409 .NSET=EULER BACK.-1.x.54E+6. 221. 44 *ELSET.0369 *BOUNDARY BOT. 44 *ELSET..NSET=BACK..1. .0.28.0. REFNODE=10000. 1. 1 *** Front of the slab *NSET.GEN 310.03 .1.1 m/sec.0. MECHANISM=CONSOLIDATION ** 2. 1 *NSET.5°) cos (x)*W ** This choice of initial velocity results in a net acceleration of zero ** in the x-direction at the point of contact and minimizes the initial ** impact between the plate and the roller.134100. ELSET=EULER2. .SPECIFIC=3. 264. LAW=SINGHM.0. 7. 0.47E+6.0409 . 1 ****************************************************** ************************ *** *** Degres de liberte contraints *** *EQUATION 2. 1. Increment in node numbers between nodes in the set.0. EQN1. dependencies=1 0.32E-05. 315.0.63 1.S2 *SURFACE.185 *RIGID BODY.S1 *SURFACE.28 rad/sec). 1.00014E+6 .086E+6. 0.250 *EXPANSION 0.07e-2 ** 16. .NSET=BACK2.15E+6.0 600.GEN 2.185 **#.GEN 221.NSET=EQN2.75E+6. 212.040900.122 30. 315..239 40. 0.GEN 310. ** *** The back fo the slab *NSET.-1.0 ** 32. .379 66. 7 *NSET. ANALYTICAL SURFACE = RIGID ****************************************************** ************************ ** start of a step arguments are the same as header 62 .NSET=FRONT.1..GEN 1. 1..GEN 7. 0. 0. **c.NSET=EQN1.95E+6. 1. (19. Last node in the set. The plate is given an initial velocity in the global **x-direction.1. ****************************************************** ************************ *** VARIABLES .558 .47 0. **b. 1.915 19.TYPE=SEGMENTS. 0.*CAP HARDENING 400.0.1e-2.NSET=TOP.72 1. 2 *SURFACE.c **a.ELSET=TOP.1.0 *** *ELSET. 315.330 54. 1 *NSET.0 ** 3.185000 .0. ELSET=EULER1. .y ****************************************************** ************************ *** ***This option assigns nodes to a node set ="name" *NSET. 50.001 START. 1 *NSET. The initial velocity is chosen to match the xcomponent ** of velocity of the roller at the point of first contact.. *DENSITY 7.

ELSET=TOP PEEQ.6. <first dof>. ** When using rate-dependent materials.Dynamic **Include EXPLICIT parameter to specify explicit time integration. *NODE FILE.225 **the argument defines overrides default time of process. ** nonzero displacements.=rot Z.TIME INTERVAL=1.REGION TYPE=EULERIAN BACK2. mass scaling is preferable ** because increasing the loading rate artificially changes the ** material properties.0. VARIABLE=ALL *OUTPUT. *NSET.3.NSET=REF U.0.With roll radius at .2.0 ****************************************************** ************************ *SURFACE INTERACTION.28 rad/sec). Such parts may be constrained to remain fixed ** (have zero displacement) during the simulation or may have specified.6. *NODE OUTPUT.5=rot Y. and allows for either automatic or fixed time **incrementation to be used--by default *DYNAMIC.TYPE=VELOCITY 10000.0 ** ****************************************************** ************************ ** Mass scaling is often used for computational efficiency in quasi-static ** analyses and in some dynamic analyses that contain a few very small ** elements that control the stable time increment.TYPE=VELOCITY. ELSET=QA_TEST PEEQ. CPSET=CONTACT SURF1.EXPLICIT .E-4 *NODE OUTPUT.HISTORY.RF *OUTPUT. NSET=QA_TEST BOT. FACTOR=27000. *FIXED MASS SCALING.2.0. *ENDSTEP 63 .5 ** ** Set the rotation of the ROLL about Z (DOF #6) axis to velocity V *BOUNDARY.NUMBER INTERVAL=10 *ELEMENT OUTPUT PEEQ. ** Boundary conditions on a node are cumulative ** The node 10000 = ROLL -> set DOF# 1 through 5 to 0 *BOUNDARY 10000.175.INTERACTION=FRICT.ELSET=BAR. 2=Y.FREQUENCY=5 *ADAPTIVE MESH CONSTRAINT EULER. HIST.2832 ** **the back is constrained only in the Y (2) direction **DOF to constrain are 2 to 2 (=only 2)and displacement in Y direction is 0 **review =EULERIAN *BOUNDARY. NSET=QA_TEST U. NSET=QA_TEST_REFN RF. 3=Z.(ie .NSET=REF RF2 ***--------------------*NSET.RIGID ** ****************************************************** ************************ *FILE OUTPUT. CPSET=CONTACT. FIELD. *OUTPUT. BACK. <last dof>. ** Mass scaling is an alternative to increasing the loading rate.NAME=FRICT *FRICTION 0. FIELD. FREQ=9999 *ENERGY OUTPUT.2) ** ****************************************************** ************************ **Prescribing boundary conditions at nodes **The roller is rotated at a constant angular velocity of 1 revolution per **second (6. *NODE OUTPUT.0.1. VAR=PRESELECT ****** *ADAPTIVE MESH.1. **can be used to perform quasi-static analyses with complicated **contact conditions.1. NUMBER INTERVAL=10.V *CONTACT OUTPUT.2. TIME MARKS=YES. ELSET=QA_TEST TOP.6. NUMBER INTERVAL=10 *ELEMENT OUTPUT. *OUTPUT. ** <node number>. <magnitude of displacement> ** 1=X. *CONTACT PAIR. **Boundary conditions are applied to those parts of the model where the ** displacements are known.S *NODE OUTPUT U.2. In either situation the constraints are applied ** directly to the nodes of the model. *ELSET. NSET=QA_TEST_REFN REF.4=rot X. TIMEMARKS=YES *EL FILE.*STEP Powder Compaction ** **the type of simulation .

m.3Main User Interface Once the GUI is running 64 .m help menu modaldlg.fig) The program was developed on a Solaris machine. b) Type nip on the Matlab command line.Matlab Program Source Code Included CD with all source files (nip.fig help menu graphical user interface johansonModel.fig the graphical user interface for this program SlipStickFun.3. choose the directory containing required files. If the local path is the directory containing the required files a GUI will appear. Fig.jpg image of the system Run Instructions: All the files should be located in the same directory. Once Matlab is up and running there are two methods of stating the program: a) Click on File Open.m.m two functions representing the state of the powder slipODE. This will open a Graphical User Interface (GUI) similar to the one in figure 9.3 Johanson Model .m torque factor equation modaldlg.m main program nip. nip.m ODE for the powder while slip occurs forceFactor.9. Graphics may be different on other platforms. 9. Required files: nip. click on nip.m force factor equation torqueFactor.

4 Help Screen 65 .A pull-down menu contain file operations and help. 9. Fig.

handles.14) % rMin = min range value if nargout > 0 66 . adjustments are required. %% SlipStickFun.PowderDB(2).PowderDB(4). % Warning 'save on exit' handles. % Option for plotting in main GUI axes or separate figure handles. % W=phi-wall (roll-powder) friction angle (user enters friction coefficient -> tan(phi)=mu) %Set default properties of the plot % v=acute angle between the tangent to the roll surface and the set(0.S='1'.PowderDB(3). %The program saves and imports powder database which is saved %create default powder databse as a matlab file handles.PowderDB(3).64'. % NIP('callback_name'.PowderDB(4).Name='Lactose75'.75'.D='130'. %%%%%%%% handles. %% johansonModel. %% modaldlg. %% torqueFactor.main program handles.m two functions representing the state of the handles. %Menu Options handles.2003') %% Description: disp('---------------------------------------------') %% Application of Johanson Model of rolling Compaction of disp(' ') powder.75'. %% forceFactor.W='0.PowderDB(4).m force factor equation handles. % K=Compressibility constant %load Avicel powder from the database % d=delta .PowderDB(4).PowderDB(4).RW='50'.PowderDB(1).19'.06'.jpg image of the system handles.K='4.24'.PowderDB(1).Po='0.28'.m ODE for the powder while slip occurs handles. some user handles. same figure handles. %%%%%%%%% handles.d='45'.RW='50'.Po='0.06'. % button %create default powder databse %is selected in which case consecutive plots of the same type will handles. % D=Diameter of Rolls handles. %%%%%%%% handles.PowderDB(3).3). %% slipODE.06'.PowderDB(1).Name='AvicelPH101'.'DefaultTextFontSize'. % can be calculated using W and d set(0.D='130'.K='3.06'.PowderDB(4).m torque factor equation handles.fr disp('Powder Rolling Compaction .PowderDB(2).PowderDB(1).'DefaultLineLineWidth'. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% handles = guihandles(fig). 2003 if nargin == 0 % LAUNCH GUI %% Marcin Balicki disp(' ') %% Ecole Des Mines D'Albi disp('---------------------------------------------') %% balicki@enstimac. handles.PowderDB(1). %% Allows for quick analysis effects of parameter variation on fig = openfig(mfilename. %one figure handles.K='4. .Name='AvicelPH102L'.d='42'.W='0.PowderDB(2). %The program can export the database as a text file as well.S='1'. be plotted in handles.PowderDB(1).Po='0. %% Note: guidata(fig.PowderDB(4). 2).Po='0. handles). powder handles.W='0.) invoke the named callback.'Main').PowderDB(2).3).Name='AvicelPH102'.PowderDB(3)..PowderDB(2). %All the graphs are plotted in a new figure unless the %plot in handles.'DefaultAxesLineWidth'. %%%%%%%% handles. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Last Modified by GUIDE v2. % user input handles.m help menu %create default powder databse %% modaldlg.S='1'.m This file .0 07-May-2003 16:37:58 %% Johanson Model %% Date May 6. %The print command prints the user interface. %create default powder databse %%Required files: handles.RW='50'. % Po=initial pressure at the entrance (perpendicular to major %Update powder list that is in the database principal stress UpdateList(handles). %% nip. %% nip.'DefaultAxesFontSize'. direction of the major principal stress set(0.fig % FIG = NIP launch nip GUI.D='130'.PowderDB(1). %% powder compaction set(fig..m % rMax = max range value %%%%%%% function varargout = nip(varargin) % NIP Application M-file for nip.1 SOURCE CODE nip.PowderDB(2).D='130'.PowderDB(3). %% The program was developed on a Solaris machine %note the current DB file in use (used in saving) %% Graphics may be different on other platforms handles.pdb' suffix handles.K='7.LastFile=''.d='39'. %% It provides a means of creating and altering databases of % Generate a structure of handles to pass to callbacks.29'.RW='50'.'reuse').PowderDB(3).PowderDB(2). % To DO: handles.PowderDB(2).PowderDB(1).PowderDB(4).PowderDB(3).75'.PowderDB(3). % S=Gap size(between rolls) handles.'Tag'.fig the graphical user interface for this program handles.fig help menu graphical user interface handles.S='1'. %with '.16) % RW=roll width set(0. %%%%%%%% handles.internal friction angle of powder LoadPowder(handles.d='42'.Johanson method') %% disp('Marcin Balicki') %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% disp('Ecole des Mines d Albi . %% powder properties and process parameters and store it.MATLAB 6.W='0.

'modal') end % -------------------------------------------------------------------function varargout = varD_Callback(h. VARARGIN) %| %| The subfunction name is composed using the object's Tag and the %| callback type separated by '_'. if isnan(user_entry) errordlg('You must enter a numeric value'.g. varargin) user_entry = str2double(get(h.'Bad Input'. 'slider2_Callback'.'modal') end % -------------------------------------------------------------------function varargout = vard_Callback(h.varargout{1} = fig.'string')). eventdata. %| %| Each callback subfunction declaration has the following form: %| <SUBFUNCTION_NAME>(H.handles). eventdata.figure1. if isnan(user_entry) errordlg('You must enter a numeric value'. Type "help guihandles" and "help guidata" for more %| information. eventdata. gcbo. if isnan(user_entry) errordlg('You must enter a numeric value'. if isnan(user_entry) errordlg('You must enter a numeric value'. You can store additional information in %| this structure at GUI startup. e.'string')). varargin) 67 . handles.'modal') end % -------------------------------------------------------------------function varargout = rMax_Callback(h. if isnan(user_entry) errordlg('You must enter a numeric value'. % store the changes into the guihandle structure elseif ischar(varargin{1}) % INVOKE NAMED SUBFUNCTION OR CALLBACK try if (nargout) [varargout{1:nargout}] = feval(varargin{:}). end guidata(fig.'string')). eventdata.'Bad Input'. varargin) user_entry = str2double(get(h.'modal') end % -------------------------------------------------------------------function varargout = varS_Callback(h. handles) after changing your %| copy to replace the stored original so that subsequent callbacks see %| the updates. if isnan(user_entry) errordlg('You must enter a numeric value'. eventdata. eventdata. %| %| VARARGIN contains any extra arguments you have passed to the %| callback. varargin) user_entry = str2double(get(h. A copy of the structure %| is passed to each callback.'Bad Input'. % FEVAL switchyard else feval(varargin{:}).'modal') end % -------------------------------------------------------------------function varargout = varK_Callback(h. but reserved for future use. varargin) user_entry = str2double(get(h. handles. eventdata.'modal') end % -------------------------------------------------------------------function varargout = PopMenu_Callback(h.slider2. varargin) user_entry = str2double(get(h. % FEVAL switchyard end catch disp(lasterr). handles.'string')). varargin) user_entry = str2double(get(h. handles. if isnan(user_entry) errordlg('You must enter a numeric value'.'string')).'Bad Input'. and %| sets objects' callback properties to call them through the FEVAL %| switchyard above. []. handles. %| %| H is the callback object's handle (obtained using GCBO). handles. 'axis1_ButtondownFcn'.'string')). Specify the extra arguments by editing the callback %| property in the inspector. if isnan(user_entry) errordlg('You must enter a numeric value'. e. EVENTDATA. eventdata.'Bad Input'. handles. %| %| EVENTDATA is empty.'Bad Input'.'Bad Input'. By default. end end %| ABOUT CALLBACKS: %| GUIDE automatically appends subfunction prototypes to this file. eventdata. varargin) user_entry = str2double(get(h.g. HANDLES. handles. %| %| HANDLES is a structure containing handles of components in GUI using %| tags as fieldnames. Call guidata(h.'string')). This comment describes that mechanism.'string')).'Bad Input'. varargin) user_entry = str2double(get(h.'modal') end % -------------------------------------------------------------------function varargout = varRW_Callback(h. and you can change the structure %| during callbacks. eventdata. before the final %| closing parenthesis. handles. if isnan(user_entry) errordlg('You must enter a numeric value'. GUIDE sets the property to: %| <MFILENAME>('<SUBFUNCTION_NAME>'. handles.'string')).'modal') end % -------------------------------------------------------------------function varargout = varPo_Callback(h. eventdata. This %| structure is created at GUI startup using GUIHANDLES and stored in %| the figure's application data using GUIDATA. % -------------------------------------------------------------------%most of the following just check if the user input is correct % -------------------------------------------------------------------function varargout = rMin_Callback(h. %| 'figure1_CloseRequestFcn'. varargin) %change the required variable visibility updateVariableVisibility(handles) % -------------------------------------------------------------------function varargout = CheckPlot_Callback(h. handles. handles.'Bad Input'. varargin) user_entry = str2double(get(h. handles.'modal') end % -------------------------------------------------------------------function varargout = varW_Callback(h. guidata(gcbo)) %| Add any extra arguments after the last argument.

rMin.'').varS. case 3 % Nip Angle Vs Internal Friction Angle set([handles.varW.'').rMin.'String'. handles. set(handles. set(handles. handles. handles. set(handles. handles.rMin.%Displays the Plot On Same Axes status if get(h. 'on'). 'on'). handles. set(handles. case 6 % Nip Angle Vs Roll Gap set([handles.'BackgroundColor'. handles.rMin.'Deg').'String'.rMax. set(h.'String'.'').'String'. %but if they exist and plot in same figure is off %create a new figure with the name passed in to the function elseif get(handles.figs] = figflag(figName). set(handles.'Children')== 0.2)). set(handles. case 7 % Pressure Distribution in Nip Region set([handles.0.'Angular Position'). handles.'String'.varRW]. 'on'). fig=figure('name'.'Visible'.'Visible'.varW.rVar.'String'.varS.vard.varD.rUnit.'0').varD. set(handles.'Value'). handles.varD.rVar.rMin.'0.rUnit.varW.varW.varRW].'String'. set(handles. handles.varD.'Value') %returns all choices %returns the number of the choice (first position = 1) %set all to off %W is the friciton coefficient set([handles.varPo.'String'.varK.rVar.rMax.'100').varPo.'String'.rVar. set(handles. set(h.'String'. handles.vard]. handles.'String'.varD. set(handles. set(handles. switch pop_Selected case 1 %nothing selected turn all on set([handles.vard].'String'.varK. handles.'0').'Deg'). set(handles.'70').'String'.'String'.varD.4'). handles. case 5 % Nip Angle Vs Compressibility set([handles. handles.varK.70.'String'.'String'.PopMenu.0. set(handles.'String'. set(handles. handles.70.vard].rMax.varS. case 2 %nipAngle set([handles. set(handles.CheckPlot.'String'. handles. handles.'Visible'.8'). set(handles. set(handles.'60').figName). handles.rMax.'Friction Coefficient'). 'off').'BackgroundColor'. handles.'String'. fig=figure('name'. %get the last figure that matches the figName hold on %and force it to plot on the same axes.varS.38.'String'.'').'Roll Gap').rUnit.rMin.rUnit.rUnit.figName).'String'.'1').varW.'0'). handles.75.''). [0.varS.rUnit. handles.rMax.rUnit. pop_Selected = get(handles. %if they exist then make one of them the current one else fig=figs(size(figs.'10'). set(handles. hold off %shut off same axes plotting %If figure exist and the plot should be on same axes else %get all the figures with figName [flag. set(handles. 'on').varK. handles. 'Plot On Same Axes .92]). handles. 'on').'').'Internal Friction Angle'). set(handles.'String'.'String'. handles.'0.PopMenu.rMax.ON').varW. 68 .rMin.varK.rVar.'100'). set(handles.varW.'mm').'Visible'.varK].'Value')==1 set(h.rMin. handles. handles.'String'.rMax. set(handles. set(handles.'String'. set(handles.'Visible'.varPo].'Visible'.'String'. set(handles. 'Plot On Same Axes .rVar. set(handles. handles. 'on').'String'.'Angular Postition').5').figName) %returns the handle to the figure used for plotting %function opens a new figure for the plot %can also be made to use the axes of the gui %by checking the state of a button %but this would not allow editing of graphs %if no figures exist create one if get(0.'Value') == 0.'String'. handles.figName). 'on').'20').'0. case 8 % Maximum Pressure Vs Nip Angle set([handles.rUnit. fig=figure('name'.rVar.varS.vard].varW. set(handles.vard.'0').'String'.'String'.'Deg'). set(handles. case 4 % Nip Angle Vs Wall Friction set([handles. set(handles. handles.'String'.rMax.vard.'Visible'. handles.0.varK.'12').70]). handles.varD.'String'. else set(h. handles.'2.OFF'). %if none then create one if flag==0.0. handles. set(handles.varS. set(handles.'String'.varD.varS.1'). [0. set(handles.rVar. handles. end % -------------------------------------------------------------------function fig=newFigure(handles.'String'. end end % -------------------------------------------------------------------function updateVariableVisibility(handles) % Determine the current choice and change the input fields visibility % so the user can only enter the required fields %pop_Names = get(handles.'Compressibility (K)').'Visible'.

handles.rVar.rMin.'2.varPo.'String'.'String'.rUnit.varK.'Compressibility (K)').rMin. set(handles.rMin.'Friction Coefficient').rMax.'').'String'.'String'. case 14 % Roll Force Vs Roll Gap set([handles.rMin. set(handles.vard]. set(handles. set(handles. set(handles.rMin. handles.'String'.'10').'Roll Gap').'String'.'String'.varPo]. handles.8').'String'.rMax.PopMenu.rUnit.'Internal Friction Angle').'12').'String'.varD.'0.varK.rUnit.'String'.rUnit.rMax.'String'. case 15 % Roll Torque Vs RollGap set([handles.'Visible'.varS.rUnit. set(handles. handles. handles. handles.varW. eventdata.'0. handles.'String'. set(handles.varK. 'on').'Visible'. set(handles.varW. 'on'). set(handles.'12'). handles.'0. handles.varPo.varS.'Value').handles.'String'.rVar. varargin) %runs the chosen ploting function %returns the number of the choice (first position = 1) pop_Selected = get(handles.varRW].'Nip Angle').varK. set(handles.rMax.'2.'String'.varS.'1').'String'. handles. set(handles. handles.varPo].rVar.rMax.'String'.rMax. set(handles.rVar.varD. handles.'Visible'. 'on').'Deg'). handles. set(handles.'String'.'mm').vard. handles.vard.rVar. set(handles.varW. handles. handles. set(handles.varPo]. case 9 % Maximum Pressure Vs Po set([handles.varPo]. case 11 % Maximum Pressure Vs Wall Friction set([handles.varD.'Visible'.'7'). set(handles.5').rMin. 'on'). handles.1').'2').'String'. set(handles.''). set(handles.4'). handles.'String'.varK.rUnit.rVar.varS.'Visible'.rVar.rVar.vard. handles.'Feed Pressure'). 'on'). handles.') end % -------------------------------------------------------------------function varargout = CalcButton_Callback(h. %After the calculate button was pressed the pop menu value is retrieved %and appropriate function is called switch pop_Selected case 1 disp('CHOOSE PLOT') case 2 NipAngle(handles) case 3 NipAngleVsInternalFrictionAngle(handles) case 4 NipAngleVsWallFriction(handles) case 5 NipAngleVsCompressibility(handles) case 6 NipAngleVsRollGap(handles) case 7 PressureDistribution(handles) case 8 MaximumPressureVsNipAngle(handles) case 9 MaximumPressureVsPo(handles) case 10 MaximumPressureVsInternalfFrictionAngle(handles) case 11 MaximumPressureVsWallFriction(handles) case 12 MaximumPressureVsRollGap(handles) case 13 MaximumPressureVsCompressibility(handles) case 14 RollForceVsRollGap(handles) case 15 RollTorqueVsRollGap(handles) otherwise disp('Unknown method.rUnit.varK.varW. set(handles.varPo].vard.') end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Johanson Model %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Nip Angle % Nip Angle Vs Internal Friction Angle % Nip Angle Vs Wall Friction % Nip Angle Vs Compressibility % Nip Angle Vs Roll Gap % Pressure Distribution in Nip Region % Maximum Pressure Vs Nip Angle % Maximum Pressure Vs Po 69 . case 10 % Maximum Pressure Vs Internal Friction Angle set([handles.varW. set(handles. set(handles.rMin. 'on').5'). case 13 % Maximum Pressure Vs Compressibility set([handles.'Roll Gap').'Visible'.'Roll Gap').'String'. otherwise disp('Unknown method.vard. handles.varK. 'on'). set(handles.'String'.'String'.vard. set(handles.'String'. handles.'String'.'mm').'Visible'.varD. handles.'2. handles.'0').varD. handles.rMax.'0. handles.rMin.varD. handles. set(handles.rMax.4').'mm').rUnit. set(handles.5').'60'). handles. handles.'String'.varD. handles. handles. set(handles.varRW]. case 12 % Maximum Pressure Vs Roll Gap set([handles. handles. set(handles. handles.varW.'String'. set(handles.'0.4'). set(handles.'MPa'). set(handles.'String'.'Visible'. set(handles.'String'. handles.'String'.'String'.'Deg').varD. 'on').'String'. set(handles.'String'.

rMin.num2str(d*r2d).num2str(D). XY = fsolve(@SlipStickFun. %set global variables used in functions.*(2. % rMin = min range value % rMax = max range value %prints variables used on the graph: %%%%%%% TPosX=(max(x)*r2d*0.num2str(K)]).varPo. direction of the major principal stress legend('SLIP'. direction * factor d = str2double(get(handles.'Nip Angle Vs Internal Friction Angle')). ['S= '. 70 .*(2.0. %contained in SlipStickFun.0. % W=phi .*cos(x)))./((D/2).TPosY-TSp*3. %get internal friction angle %returns alpha in radiants u=(pi/4)-(d/2).*(cot(((x+v+(pi/2))/2)-u)-cot(((x+v+pi/2)/2)+u))). stick) i=1. %calls fsolve function which uses two functions(slip.8.m and solves for the point of their for M=rMin:1:rMax intersection d=M*d2r. width text(TPosX./((D/2). i=i+1./(D/2.'NIP ANGLE')).varD. Po = str2double(get(handles.' mm']).6).'String')).TPosY.fn2. Options).'String')).1]. % v=cute angle between the tangent to the roll surface and the xlabel('Angular Position [Deg]').rMax.varW.'off').TPosY-TSp*2.num2str(tan(W))]). end Options = optimset('Display'.0.*((1+S/Dglobal d2r r2d D S W d K v u RW Po rMin rMax cos(a)). %Roll Deg']). ['\delta= '. % can be calculated using W and d legend('boxoff') % RW=roll width grid off.05).% Maximum Pressure Vs Internal Friction Angle % Maximum Pressure Vs Wall Friction % Maximum Pressure Vs Roll Gap % Maximum Pressure Vs Compressibility % Roll Force VsRollGap % Roll Torque VsRollGap %XY returns the answer.num2str(S).0. TPosY=max(fn1)*0.'String')).varK. InitialGuess = [. %all variables are global a=getAplha(handles) function [] = getUserVarInput(handles) %value of y when x = a %set global variables used in functions. %get all the variables % x represents theta %angle variables are converted to radiants x=linspace(rMin. %calculate v which is used all equations %all variables are global v=(pi-asin(sin(W)/sin(d)) -W)/2.x*r2d.TPosY-TSp*4. direction * factor D = str2double(get(handles. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %calculate v which is used all equations v=(pi-asin(sin(W)/sin(d)) -W)/2.*tan(a)). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% rMin = str2double(get(handles. text(TPosX.*tan(x)).*cos(x)-1-S/D).*tan(d)).*((pi/2)-x-v). figure(newFigure(handles.*cos(a)-1-S/D). N(i.fn1. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function NipAngle(handles) %NIP ANGLE %plots slip and stick pressure gradients %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %point of intersection is the nip angle disp('NipAngle') %set global variables used in functions outside of this file.0. text(a*r2d+(TPosX*0. ay=(K.' mm']).'String')).internal friction angle of powder z=0. ['K= '.'String')).ay+TSp. W=str2double(get(handles. % conversion factor radiants into degrees fn1=(4.' Deg']). function NipAngleVsInternalFrictionAngle(handles) rMax = str2double(get(handles. d2r=pi/180. %%%%%%%% %stick gradient equation % S=Gap size(between rolls) fn2=(K.'String'))*d2r.*cos(a))). coefficient tan(phi)=mu) title('Nip Angle (\alpha)'). ['\mu= '.1)=M. the x component is the angle alpha a=XY(1). % Po=initial pressure at the entrance (perpendicular to major %get a new or correct figure for plotting principal stress figure(newFigure(handles.a*r2d.TPosY-TSp. % returns the maximum value in y K = str2double(get(handles. ylabel('Pressure Gradient'). % returns the maximum value in x S = str2double(get(handles.'NO SLIP').'ro').0. %Nip Angle Vs Internal Friction Angle %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % disp('NipAngleVsInternalFrictionAngle') %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% global d2r r2d D S d K v W u Po RW rMin rMax function a=getAplha(handles) %get all the variables %Solve for alpha getUserVarInput(handles). TSp=TPosY*0. ['D= '.['\alpha = '. %get alpha and turn into degrees %call fsolve mysystem is the function containing the two for plot equations.2)=getAplha(handles)*r2d.*((1+S/D% D=Diameter of Rolls cos(x)).. % conversion factor degrees into radiants %slip gradient equation r2d=180/pi.'String')). u=(pi/4)-(d/2).'k--'. text(TPosX. %calculate a new u %handles is passed to the function for formality.wall (roll-powder) friction angle (attained from friction plot(x*r2d.varRW. %take atan to get the wall friction angle in radiants text(TPosX.09.rMax*d2r).num2str(a*r2d).z.' RW=str2double(get(handles.ay.*(1+S/Dcos(x)). global d2r r2d D S W d K v u RW Po rMin rMax N(i.'k--'. W=atan(W).x*r2d. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% global d2r r2d D S d K v W u Po RW rMin rMax %Extracts user input from the gui %get all the variables %getUserVarInput getUserVarInput(handles). InitialGuess.vard. % K=Compressibility constant %straight line % d=delta .'String')).varS.1.'String')). %w at this moment is the fricition coefficient text(TPosX.

['\mu= '. disp('NipAngleVsWallFriction') text(TPosX.2)).2)=getAplha(handles)*r2d.2.'YData').plotA=plot(N(:. x direction ylabel('Nip Angle (\alpha) [Deg]').'XData'). ylabel('Nip Angle(\alpha) [Deg]'). title('Nip Angle Vs Roll Gap').TPosY-TSp*2. i=i+1 ylabel('Nip Angle (\alpha) [Deg]'). text(TPosX.N(:. xlabel('K . % Get the plotted data plotA=plot(N(:. title('Nip Angle Vs Internal Friction Angle'). ['S= '.TPosY.'YData'). % Get the plotted data TSp=TPosY*0. ['\delta= '. xlabel('Internal Friction Angle [Deg]').8.TPosY-TSp*3. %returns text(TPosX. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% text(TPosX. plotA=plot(N(:.'YData').0.N(:. ['\delta= '. step=(rMax-rMin)/20. ['K= '.num2str(D).9.9. %convert ranges into wall friction angle in radiants %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% rMin=atan(rMin) rMax=atan(rMax) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %number of iterations function NipAngleVsRollGap(handles) step=(rMax-rMin)/40.2)). text(TPosX. TPosY=(max(yData))*0.1)=K.0.'Nip Angle Vs Wall Friction')). function NipAngleVsWallFriction(handles) TPosX=(max(xData))*0.0. ['D= '.2. %get alpha and turn into degrees for plot i=i+1 end figure(newFigure(handles.TPosY-TSp.N(:. N(i. TPosX=(max(xData))*0. ' mm']).0. title('Nip Angle Vs Compressibility'). % returns the maximum value in xlabel('Roll Gap [mm]').num2str(D).' mm']).num2str(tan(W))]).N(:.1)=S.TPosY-TSp*3.07.9. ['K= '. global d2r r2d D S d K v W u Po RW rMin rMax N(i. %print the variables unique to this plot TPosX=(max(xData))*0.' mm']). ['S= '.'XData'). ['\mu= '. ' Deg']).Copmressibility ').'XData'). getUserVarInput(handles).2)=getAplha(handles)*r2d. end figure(newFigure(handles.0. global d2r r2d D S d K v W u Po RW rMin rMax text(TPosX. K=M. for M=rMin:step:rMax.1).0.0. figure(newFigure(handles.TPosY-TSp.normal stress is equal to pressure excerted on the 71 . xData = get(plotA.' Deg']).TPosY-TSp*3. ['\delta= '. % returns the maximum value in x direction TPosX=(min(xData)) + (max(xData)-min(xData))*0. % Get the plotted data %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% yData = get(plotA.TPosY.' mm']). ' mm']). yData = get(plotA.1)=tan(M).num2str(S).0. ['\mu= '.0. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% text(TPosX. the maximum value in y direction text(TPosX. ['D= '.2. ' mm']).TPosY.num2str(d*r2d). %get all the variables text(TPosX. grid off. yData = get(plotA.07. x direction text(TPosX.num2str(d*r2d). xData = get(plotA.num2str(K)]).1).1). function NipAngleVsCompressibility(handles) text(TPosX. for plot i=1 i=i+1 for M=rMin:step:rMax end S=M. %convert wall friction angle to friction %get all the variables coefficient getUserVarInput(handles).num2str(K)]). text(TPosX.' Deg']). % returns the maximum value in y direction TSp=TPosY*0.num2str(S). N(i.2)). text(TPosX.num2str(S).num2str(tan(W))]).num2str(d*r2d).TPosY. ['S= '. disp('NipAngleVsRollGap') v=(pi-asin(sin(W)/sin(d)) -W)/2. % returns the maximum value in %Nip Angle Vs Wall Friction Angle x direction % TPosY=(max(yData))*0.0.num2str(tan(W))]).07. N(i. TPosY=(max(yData))*0. % returns the maximum value in %Phi=W=wall friction angle user inputs the friction coefficient y direction % -------------------------------------------------------------------TSp=TPosY*0.9.2)=getAplha(handles)*r2d. plotA=plot(N(:. N(i. N(i.TPosY-TSp.TPosY-TSp*2.TPosY-TSp*3.0.1).0.'YData').'Nip Angle Vs Compressibility')). % for M=rMin:step:rMax % -------------------------------------------------------W=M.2)). ' mm']). i=1. text(TPosX.TPosY-TSp. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% getUserVarInput(handles). TSp=(max(yData)-min(yData))*0. %get alpha and turn into degrees title('Nip Angle Vs Wall Friction'). % Nip Angle Vs Roll Gap i=1. text(TPosX.'XData'). xData = get(plotA. TPosY=(min(yData)) + (max(yData)-min(yData))*0.num2str(D). ['D= '.0. for plot xlabel('Wall Friction Coefficient (\mu)'). % returns the maximum value in text(TPosX. %get alpha and turn into degrees step=(rMax-rMin)/20.TPosY-TSp*2. ['K= '. % returns the maximum value in y direction xData = get(plotA.'Nip Angle Vs Roll Gap')).07.0.num2str(D). ylabel('Nip Angle (\alpha) [Deg]').0. ['D= '.num2str(K)]). % Get the plotted data yData = get(plotA. %Nip Angle Vs Compressibility %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % -------------------------------------------------------------------%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function PressureDistribution(handles) disp('NipAngleVsCompressibility') %PRESSURE DISTRIBUTION global d2r r2d D S d K v W u Po RW rMin rMax %Stress vs Angular position %get all the variables %Assumption .TPosY-TSp*2.0.

x=0. text(TPosX. x=linspace(rMin*d2r. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function MaximumPressureVsPo(handles) %EFFECTS OF ENTRY PRESSURE ON PRESSURE AT %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% DISPLACEMENT 0 function MaximumPressureVsNipAngle(handles) %Pressure0vsPo % %opens a new plot window %EFFECTS OF NIP ANGLE ON PRESSURE AT ANGULAR % --------------------------------------------------------------------DISPLACEMENT 0 %Pressure vs Nip Angle disp('PressureVsPo') % -------------------------------------------------------global d2r r2d D S d K v W u Po RW rMin rMax disp('PressureVsNipAngle') %get all the variables global d2r r2d D S d K v W u Po RW rMin rMax getUserVarInput(handles). figure(newFigure(handles. the second is the %for all the elements in Alpha get s limit-0 %at position 0 xspan=[x0. % returns the maximum value in x direction xData = get(plotA.'Pressure Distribution')). ylabel('Maximum Pressure [MPa]'). xData = get(plotA.0. % Get the plotted data xlabel('Angular Position [Deg]').TPosY-TSp*4.feed stress (pressure) at x0 sa = deval(sol.so). TSp=TPosY*0. %get the nip angle a=getAplha(handles). % returns the maximum value in text(TPosX. %first item (limit) is the initial condition point.xspan. ['K= '.TPosY-TSp*6. yData = get(plotA. s=sa. ['\delta= '.*cos(x))).0.0]. so=[Po/(1-sin(d))]. sa = deval(sol.num2str(Po). ['D= '.TPosY-TSp.0. sa = deval(sol.TPosY-TSp.2)). then plot %initial condition .so). end %pressure distirbution (No slip) equation with initial condition at figure(newFigure(handles.8. % Get the plotted data TPosY=(max(yData))*0.0.*cos(a)).s).a). ' Mpa']). %Solve the differential equation of powder behavior in SLIP to get %Runga-Kutta ODE solver pressure at alpha sol=ode45(@slipODE.^K.a).1)=Alpha(M).a).powder by roll % -------------------------------------------------------------------disp('PressureVsAngularPosition') global d2r r2d D S d K v W u Po RW rMin rMax %get all the variables getUserVarInput(handles).0.num2str(tan(W))]).TPosY.1). %pressure at alpha from the slip equation %the pressure at position 0 = maximum pressure.*((1+S/D-cos(a).07.*cos(x))). TPosX=rMin+(rMax-rMin)*0. text(TPosX.N(:.0. x direction TPosY=(max(yData))*0.rMax*d2r). ' mm']).*cos(a)).xspan. %variable used in ODE solver.7. ['Po= '.num2str(tan(W))]). the second is the %%%%% limit-0 %Pressure distribution xspan=[x0.TPosY-TSp*5. text(TPosX.2)=sa. ['S= '. ' mm']). ' Deg']).'XData'). ' Deg']).0.0.feed stress (pressure) at x0 so=[Po/(1-sin(d))]. ylabel('Pressure [MPa]').0.num2str(K)]). text(TPosX.2)) sol=ode45(@slipODE.num2str(a*r2d). %point of application of feed pressure %create an array that will hold alpha x0=(pi/2)-v.0. ['Po= '. ' mm']).TPosY-TSp*3. % extract the stress at nip angle alpha a=Alpha(M)*d2r. text(TPosX.num2str(S). ['K= '. % returns the maximum value in yData = get(plotA.num2str(K)])./(1+S/D-cos(x).TPosY-TSp*2.TPosY-TSp*3. text(TPosX.TPosY-TSp*5. ['\mu= '. text(TPosX.'Maximum Pressure Vs Nip Angle')). title('Pressure Distribution in Nip Region').'YData').*((1+S/D-cos(a).num2str(D). xlabel('Nip Angle(\alpha) [Deg]'). plotA=plot(x*r2d. %get the nip angle a=getAplha(handles). %Plot the pressure distribution equation N(M. ['\mu= '.'YData').'XData')./(1+S/D%ranges are in degrees so convert cos(x). text(TPosX. angle a plotA=plot(N(:. %point of application of feed pressure x0=(pi/2)-v.num2str(d*r2d). %grid. ' Mpa']).num2str(D). ['\alpha= '. ' mm']). the limits of analysis %first item (limit) is the initial condition point. the limits of analysis Alpha=linspace(rMin.TPosY.0. ['D= '. %rmin and max are in deg at this moment %variable used in ODE solver.2. %Using the Initial condition find what is the value %of sigma at angular position 0. %get all the variables getUserVarInput(handles).0]. %Runga-Kutta ODE solver for M=1:1:(size(Alpha. text(TPosX. %%%%% %Solve the differential equation in slip region %%%%% %For each alpha %for each Po calculate a new s! %From the ODE solutions get pressure at each alpha %calculate so 72 . N(M. y direction text(TPosX.0.07.9.^K.rMax). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% text(TPosX.num2str(Po). title('Maximum Pressure Vs Nip Angle'). ['S= '. % extract the stress at nip angle alpha %initial condition . % returns the maximum value in TSp=TPosY*.num2str(S). y direction TPosX=(max(xData))*0.TPosY-TSp*2.

num2str(Po). ['K= '. yData = get(plotA.%Solve the differential equation in slip region %For each alpha %From the ODE solutions get pressure at each alpha %Using the Initial condition find what is the value %of sigma at angular position 0.*cos(a))./(1+S/Dcos(x). ['D= '.0. then plot %%%%% %for each d calculate new alpha! %angular position %calculate so %maximum pressure is at 0 %Solve the differential equation in slip region x=0. y direction TSp=TPosY*./(1+S/Dcos(x).07.2)=sa.a). i=1. %for all the elements in Alpha get s at position 0 x=0. %get internal friction angle in redients u=(pi/4)-(d/2). ' Deg']). so=[Po/(1-sin(d))].1)=M.07. ylabel('Maximum Pressure [MPa]'). %Runga-Kutta ODE solver sol=ode45(@slipODE. % returns the maximum value in text(TPosX. text(TPosX. ' MPa']).0.num2str(d*r2d). ['S= '.*((1+S/D-cos(a). % extract the stress at nip angle alpha sa = deval(sol. ['\delta= '. for M=1:1:(size(PoValues. grid off.rMax.NumOfEl).'Maximum Pressure Vs Internal Fricition Angle')).TPosY-TSp.num2str(S).TPosY. xlabel('Feed Pressure (Po) [MPa] ').num2str(K)]). % Get the plotted data yData = get(plotA. xData = get(plotA.2.num2str(S).^K.'YData'). N(i.*cos(x))). text(TPosX.'XData'). TPosX=(max(xData))*0.feed stress (pressure) at x0 so=[PoValues(M)/(1-sin(d))].feed stress (pressure) at x0 so=[Po/(1-sin(d))]. %Using the Initial condition find what is the value rMax=atan(rMax).1). %initial condition . sa = deval(sol. ['\mu= '.0].0. title('Maximum Pressure Vs Internal Fricition Angle'). ['K= '.0. % returns the maximum value in y direction % returns the maximum value in TSp=TPosY*.'XData').TPosY-TSp. then plot step=(rMax-rMin)/40. ylabel('Maximum Pressure [MPa]'). xData = get(plotA. ' mm']).0. %For each alpha %convert coefficient ranges into wall friction angle in radiants %From the ODE solutions get pressure at each alpha rMin=atan(rMin). then plot %point of application of feed pressure x0=(pi/2)-v.0.2)).2)=sa. ['\alpha= '.^K. %create an array that will hold the different Po values PoValues=linspace(rMin. ['S= '. plotA=plot(N(:. %first item (limit) is the initial condition point.'YData'). %of sigma at angular position 0. text(TPosX. ['Po= '. the second is the limit-0 xspan=[x0. plotA=plot(N(:.num2str(a*r2d).'Maximum Pressure Vs Po')). the limits of analysis %first item (limit) is the initial condition point.TPosY-TSp*2.TPosY-TSp*3.2. the second is the limit-0 xspan=[x0. TPosX=(max(xData))*0.2)). sol=ode45(@slipODE.8. x direction TPosY=(max(yData))*0.1)=PoValues(M). a=getAplha(handles). step=(rMax-rMin)/40. %Maximum Pressure (at Position 0) vs Internal Friction Angle % %%%%% % --------------------------------------------------------------------%for each phi(W) calculate new alpha! %calculate so disp('Pressure0VsInternalfFrictionAngle') %Solve the differential equation in slip region global d2r r2d D S d K v W u Po RW rMin rMax %For each alpha %get all the variables %From the ODE solutions get pressure at each alpha getUserVarInput(handles). 73 . ' mm']).so). text(TPosX.8 . NumOfEl=100.a). ' Deg']).*((1+S/D-cos(a).2)).TPosY-TSp*2.0. %Using the Initial condition find what is the value %of sigma at angular position 0. text(TPosX. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% text(TPosX. %variable used in ODE solver.num2str(D).N(:. i=1. ['D= '. text(TPosX.num2str(D). xlabel('Internal Fricition Angle [Deg]').TPosY-TSp*5. N(M. %initial condition . ['\mu= '.TPosY-TSp*4. title('Maximum Pressure Vs Feed Pressure (Po)').*cos(a)).TPosY-TSp*3. ' mm']). for M=rMin:step:rMax d=M*d2r.0]. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% text(TPosX. i=i+1.0. function MaximumPressureVsWallFriction(handles) text(TPosX. % returns the maximum value in x direction % Get the plotted data TPosY=(max(yData))*0.N(:. %get the nip angle %point of application of feed pressure x0=(pi/2)-v.num2str(tan(W))]).TPosY-TSp*4.so). %the internal friciton angle in degrees N(i.xspan.TPosY.0. end figure(newFigure(handles. %calculate v which is used all equations v=(pi-asin(sin(W)/sin(d)) -W)/2.*cos(x))).1). ' mm']).0. end figure(newFigure(handles. %Maximum Pressure (at Position 0) vs Wall Friction Angle %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % --------------------------------------------------------------------disp('MaximumPressureVsWallfFriction') global d2r r2d D S d K v W u Po RW rMin rMax %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %get all the variables function MaximumPressureVsInternalfFrictionAngle(handles) getUserVarInput(handles).xspan. N(M.num2str(K)]). text(TPosX.0.num2str(tan(W))]).

['Po= '.TPosY-TSp*3. ['Po= '. text(TPosX.07. N(i.0. title('Maximum Pressure Vs Roll Gap'). %first item (limit) is the initial condition point.num2str(tan(W))]).num2str(d*r2d). %Runga-Kutta ODE solver sol=ode45(@slipODE. plotA=plot(N(:. ylabel('Maxiumum Pressure [MPa]'). ' mm']). %variable used in ODE solver. ' Deg']). ' MPa']). ['K= '. for M=rMin:step:rMax S=M.1)=M.0. ' mm']).2)). ['\delta= '. i=1.xspan. K=M.TPosY-TSp. end figure(newFigure(handles.0.8. text(TPosX.'YData').^K. % returns the maximum value in xData = get(plotA.so).TPosY-TSp*5. the second is the %point of application of feed pressure limit-0 x0=(pi/2)-v.1)=tan(M).'XData'). %initial condition . ['D= '. a=getAplha(handles).0. TSp=TPosY*.*cos(x))).*((1+S/D-cos(a). sol=ode45(@slipODE. % extract the stress at nip angle alpha sa = deval(sol. x0=(pi/2)-v.TPosY.feed stress (pressure) at x0 %variable used in ODE solver. text(TPosX. % returns the maximum value in TPosX=(max(xData))*0. %convert wall friction angle to friction coeffcient N(i. step=(rMax-rMin)/40. ['\mu= '. ['S= '.0]. xlabel('Roll Gap [mm]'). v=(pi-asin(sin(W)/sin(d)) -W)/2.2)=sa.xspan.num2str(K)]).'Maximum Pressure Vs Roll Gap')).TPosY-TSp*2.6.0.0. xspan=[x0. % returns the maximum value in y direction x direction TSp=TPosY*.num2str(Po).0.*cos(a)). %variable used in ODE solver.num2str(Po).N(:. TPosY=(max(yData))*0. ['K= '.TPosY-TSp*4.num2str(D). 74 .*cos(a)).num2str(K)]).so). ' Deg']). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% text(TPosX. a=getAplha(handles).num2str(d*r2d). the limits of analysis %first item (limit) is the initial condition point. % extract the pressure at nip angle alpha sa = deval(sol. xlabel('Wall Fricition Coefficient (\mu)').TPosY-TSp*3.'YData').*cos(x))).2)).'Pressure at Position 0 Vs Roll Gap') plotA=plot(N(:. end figure(newFigure(handles. %Solve the differential equation in slip region %For each alpha %%%%% %From the ODE solutions get pressure at each alpha %for each S calculate new alpha! %Using the Initial condition find what is the value %calculate so %of sigma at angular position 0.TPosY-TSp. % returns the maximum value in y direction text(TPosX. %Using the Initial condition find what is the value %point of application of feed pressure %of sigma at angular position 0.*((1+S/D-cos(a). step=(rMax-rMin)/20. i=i+1.a). N(i.1). ' MPa']).'Maxiumum Pressure Vs Wall Fricition')). text(TPosX.num2str(S). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function MaximumPressureVsCompressibility(handles) %Maximum Pressure at Position 0 vs Roll Diameter %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % function MaximumPressureVsRollGap(handles) % --------------------------------------------------------------------%Pressure at Position 0 vs Roll Gap % global d2r r2d D S d K v W u Po RW rMin rMax % --------------------------------------------------------------------%get all the variables getUserVarInput(handles). %set(Fig.'XData'). the second is the i=1.feed stress (pressure) at x0 %From the ODE solutions get pressure at each alpha so=[Po/(1-sin(d))].TPosY-TSp*4. text(TPosX. title('Maxiumum Pressure Vs Wall Fricition').1).^K.TPosY-TSp*2. text(TPosX. text(TPosX. N(i. ['\delta= '.8. %get all the variables %%%%% getUserVarInput(handles).0. then plot x0=(pi/2)-v.2)=sa. limit-0 %maximum pressure is at 0 xspan=[x0./(1+S/Dcos(x). the second is the limit-0 xspan=[x0. %Fig=figure. ['D= '.for M=rMin:step:rMax W=M. xData = get(plotA. x=0. TPosY=(max(yData))*0. i=i+1. % Get the plotted data yData = get(plotA.'Name'. disp('MaxmimumPressureVsRollGap') %intial condition global d2r r2d D S d K v W u Po RW rMin rMax so=[Po/(1-sin(d))]. %maximum pressure is at 0 for M=rMin:step:rMax x=0.2.a).07. %grid. %for each S calculate new alpha! %initial condition %calculate so so=[Po/(1-sin(d))]. text(TPosX. % Get the plotted data x direction yData = get(plotA. ' mm']).0]. then plot %Solve the differential equation in slip region %For each alpha %initial condition .0.0]. ylabel('Maximum Pressure [MPa]'). the limits of analysis so=[Po/(1-sin(d))].0. TPosX=(max(xData))*0.N(:./(1+S/Dcos(x). the limits of analysis %first item (limit) is the initial condition point.num2str(D).

step=(rMax-rMin)/20.so). ylabel('Maximum Pressure [MPa]'). disp('RollTorque') global d2r r2d D S d K v W u Po RW rMin rMax %Solve for Maximum pressure-Pm which occurs at position 0 %get all the variables %-same as other maximum pressures getUserVarInput(handles).num2str(d*r2d).*cos(x))).TPosY-TSp. the second is the %point of application of feed pressure limit-0 x0=(pi/2)-v.8. the second is the limit-0 %force factor function xspan=[x0.0]. text(TPosX.feed stress (pressure) at x0 %evaluate the Roll Torque equation so=[Po/(1-sin(d))]. %variable used in ODE solver. % Get the plotted data yData = get(plotA.0.0. ['RW= '.xspan. for M=rMin:step:rMax for M=rMin:step:rMax N(i.num2str(Po).num2str(S).07.2)). %calculate Force factor F by integrating from 0 to a F=quad(@forceFactor./(1+S/D-cos(x).'Maximum Pressure Vs Compressibility')). ['S= '.TPosY-TSp*2. ' MPa']). ['D= '.1)=M. %first item (limit) is the initial condition point. % returns the maximum value in TPosX=(max(xData))*0. ['D= '. % returns the maximum value in y direction text(TPosX. ['\delta= '. i=i+1 end figure(newFigure(handles.*((1+S/D-cos(a).*cos(x))).num2str(tan(W))]). ['Po= '. %Runga-Kutta ODE solver sol=ode45(@slipODE. % Get the plotted data a=getAplha(handles).' mm']).0. ['K= '. %for each gap size x=0. plotA=plot(N(:.num2str(tan(W))]). xlabel('Roll Gap [mm]').a). % extract the pressure at nip angle alpha sa = deval(sol.8. 75 . %Roll Gap N(i. text(TPosX.num2str(D)./(1+S/Dcos(x). ylabel('Roll Force [N]').2)=(Pm*RW*D*0.TPosY-TSp*4. Pm=sa.0. ['\mu= '.*cos(a)).^K.0. step=(rMax-rMin)/20.0.'XData'). text(TPosX.*cos(a)).0. ' mm']). TSp=TPosY*.num2str(d*r2d). the limits of analysis %first item (limit) is the initial condition point. yData = get(plotA.5*F)/100.N(:. the limits of analysis so=[Po/(1-sin(d))].07.so).TPosY-TSp*3. function RollForceVsRollGap(handles) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %ROLL FORCE % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % --------------------------------------------------------------------function RollTorqueVsRollGap(handles) disp('RollForce') %ROLL TORQUE global d2r r2d D S d K v W u Po RW rMin rMax % %get all the variables % --------------------------------------------------------------------getUserVarInput(handles).2)=sa.N(:. xspan=[x0.TPosY-TSp.num2str(Po). %Runga-Kutta ODE solver sol=ode45(@slipODE. text(TPosX.1).num2str(K)]).'YData').1)=S.0].'YData'). text(TPosX.xspan. %calc a %for each gap size %solve ODE %calc a %get stress at angle a %solve ODE %calculate stress at position 0 %get stress at angle a % %calculate stress at position 0 i=1.'XData'). ['Po= '.1)=K.0. i=1.6.*((1+S/D-cos(a). %location of maximum stress.TPosY-TSp*4. N(i.0.TPosY-TSp*5. ['\delta= '. ['\mu= '. title('Maximum Pressure Vs Compressibility').'Roll Force Vs Roll Gap')). text(TPosX. plotA=plot(N(:. title('Roll Force Vs Roll Gap').^K.TPosY-TSp*2. xData = get(plotA.a=getAplha(handles). N(i. %Roll Gap S=M. %integrate the force factor equation from 0 to alpha %evaluate the Roll force equation %Solve for Maximum pressure (Pm) which occurs at position 0 %plot it versus roll gap %-same as other maximum pressures %integrate the torque factor equation from 0 to alpha %initial condition . text(TPosX.num2str(D).TPosY-TSp*3. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% text(TPosX. TPosX=(max(xData))*0.' Deg']). %Roll Force in newtons %this needs to be investigated not sure of conversion) /100 N(i. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% text(TPosX.' mm']).0.' Deg']). % returns the maximum value in x direction TPosY=(max(yData))*0.TPosY-TSp*5.0. xlabel('Compressibility (K)'). i=i+1 end figure(newFigure(handles.TPosY. ' mm']). %location of maximum stress. y direction TSp=TPosY*.0.' MPa']).1). x direction TPosY=(max(yData))*0.a).num2str(RW).2)). S=M. %initial condition . % returns the maximum value in xData = get(plotA.feed stress (pressure) at x0 %variable used in ODE solver. % extract the stress at nip angle alpha sa = deval(sol.2. %plot it versus roll gap %point of application of feed pressure x0=(pi/2)-v.a). text(TPosX. %f=inline('(((S/D)/((1+S/D-cos(x))*cos(x)))^K)*cos(x)') x=0.

'String'). % -------------------------------------------------------------------function varargout = loadButton_Callback(h. '*. y direction TSp=TPosY*.LastFIle = File. take the appropriate action File = handles. xData = get(plotA.RW=get(handles.N(:. 76 .PowderDB=data.varW.'W')) pass = 1. % store the changes in the handles structure %select the first item in the menu set(handles.TPosY-TSp*3.PowderDB(PowderNum). 'All PDB-Files (*. eventdata.. handles.9.P.0. handles.K=get(handles.*'}.varS. % -------------------------------------------------------------------function varargout = PowderList_Callback(h.'String').a=getAplha(handles).'Value')).*)'}. yData = get(plotA. eventdata.PowderDB(PowderNum). flds = fieldnames(data). handles. handles. Pm=sa*((1+S/D-cos(a)*cos(a))/(1+S/D-cos(x)*cos(x)))^K.PowderLabel.PowderDB(PowderNum)..PowderDB(PowderNum). ylabel('Roll Torque [N-M]'). varargin) %get all data from user input %get the number of powders add one PowderNum=size(handles. guidata(h.LastFile.varPo.PowderList. i=i+1 end figure(newFigure(handles. UpdateList(handles)..PowderDB(PowderNum).'XData'). text(TPosX. ['K= '.0.so). %calculate Force factor T by integrating from 0 to a %Torque factor T T=quad(@torqueFactor.num2str(RW). handles.0.Po=get(handles.TPosY-TSp*5.0]) return else text(TPosX.'string')).125*T/1000000. % -------------------------------------------------------------------function varargout = addButton_Callback(h.'String').'String') .0. %Runga-Kutta ODE solverlha(handles).'Roll Torque Vs Roll Gap')).varRW.' mm']).pathname]. % -------------------------------------------------------------------function varargout = Save_Callback(h. % If 'Cancel' was selected then return if isequal([filename.'All Files (*. varargin) LoadPowder(handles.handles). get(handles. eventdata. 'Select Powder Database'). varargin) % -------------------------------------------------------------------function varargout = Load_Callback(h.'Powder Database Error') end% if the PDB-file is not valid. varargin) % -------------------------------------------------------------------function varargout = removeButton_Callback(h. {'*.2)=Pm*RW^2*D*0. sol=ode45(@slipODE. ['\delta= '. handles.a)..2)+1.num2str(K)]).0.pdb'.'String'). handles.xspan. x direction TPosY=(max(yData))*0. handles. eventdata.TPosY-TSp*6.PowderDB.[0. title('Roll Torque Vs Roll Gap ').File]).'Tag').' MPa']). % store the changes UpdateList(handles). handles. text(TPosX.[0.'Value'))=[].num2str(Po).num2str(tan(W))]). % Get the powder array P=handles.*'. .TPosY-TSp*4.2)). LoadPowder(handles. varargin) % Get the Tag of the menu selected either save or saveas Tag = get(h. pathname] = uiputfile( . handles.handles) %store in global structure end end if pass==0 errordlg('Not a valid Powder Database'. eventdata.'String'. %Roll Torque (divide by 10 e 6 to get N-Meters %(this needs to be investigated not sure of conversion) N(i. handles.get(h.PowderList.S=get(handles. eventdata. varargin) set(handles.. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %The Load and save system for powder and process database % % -------------------------------------------------------------------function varargout = PowderName_Callback(h. handles.pdb)'. % extract the stress at nip angle alpha sa = deval(sol. handles. 'Save as').pdb'. {'*.a). guidata(h. ['D= '.PowderDB(get(handles.D=get(handles. ['RW= '.7.P). do not save the name end disp(['Loaded : '.W=get(handles.0.' Deg']). varargin) %loads/opens a database file [filename. .PowderDB(PowderNum). handles. ['Po= '.07.Name=get(handles.varD.'P')) fields = fieldnames(data.handles).PowderDB(PowderNum).1). %if never saved before or save as if (File=='') | (Tag=='SaveAs') % Allow the user to select the file name to save to [filename. eventdata.' mm'])..PowderName . eventdata. .vard.'Name')) & (strcmp(fields{2}. if (length(fields) == 8) &(strcmp(fields{1}. varargin) %remove the powder currently selected %shift the powder list to eliminate gaps %possibility of adding warning that there are no more powders in menu. % The file is valid if the variable is called "P" and it has % fields called "Name" and "W" two are enough % Validate the MAT-file pass=0 if (length(flds) == 1) & (strcmp(flds{1}. handles.filename).. % -------------------------------------------------------------------function varargout = File_Callback(h. guidata(h. data = load(File.num2str(D).num2str(d*r2d). '-Mat').TPosY-TSp*2.PowderDB(PowderNum). text(TPosX.'Value'. handles. handles.varK.d=get(handles.pathname]. text(TPosX. % Get the plotted data % returns the maximum value in % returns the maximum value in handles.PowderDB.. % If "Cancel" is selected then return if isequal([filename.TPosY-TSp.0]) return % Otherwise construct the fullfilename and Check and load the file else File = fullfile(pathname. text(TPosX. pathname] = uigetfile(. handles. TPosX=(max(xData))*0. ['\mu= '.'String')..1). plotA=plot(N(:.'String'). % Based on the item selected..PowderList.'*.'YData'). 1). xlabel('Roll Gap [mm]').0. UpdateList(handles).'String').

P(M). handles. 'Closing Program?'. s=strvcat(s. handles. user_response = modaldlg(dlg_pos). handles.'P') handles.PowderList.'Position').*(1+S/Dcos(x))). handles. P.P(N)..varRW.'Yes'.Name).W).'String'..P. set(handles. eventdata. %reset list s=''..'Value'.*((1+S/Dcos(x)). for N=1:size(P. %update the display set(handles. % -------------------------------------------------------------------function varargout = checkPParam_Callback(h.' '.'String'.d).Name.K.Main) elseif strcmp(button.LastFile = File. fid = fopen(File.m %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Johanson Model 77 .'String'.d. 'Save as').P(M). if strcmp(button.Name. y=V(2).EMAC 04/2003'.varW.'Yes') disp('Exiting') delete(handles.PowderDB(PowderNum).*'}. handles. slipODE.P.m %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Johanson Model %% Date May 6. eventdata.D). set(handles. save(File. set(handles.varPo.' '.'About') % -------------------------------------------------------------------function varargout = HelpGuide_Callback(h.Po.File]) SlipStickFun.. set(handles.'w').*tan(x)).' '. eventdata. varargin) %this function allows users to preview the GUI before printing printpreview(handles. dlg_pos = [pos_size(1)+pos_size(3)/5 pos_size(2)+pos_size(4)/5].PowderDB.'%s\n'.'String'. .' '.1).'String'.vard.'String'.*(2.Name). set(handles. no help available :(') end % -------------------------------------------------------------------function varargout = Help_Callback(h.*cos(x)-1-S/D). varargin) P=handles. eventdata.P(N).filename).PowderList. end % -------------------------------------------------------------------function UpdateList(handles) %check the size of the database %take each powder name and place it in the list P=handles. 2003 %% Marcin Balicki %% Ecole Des Mines D'Albi %% balicki@enstimac. fprintf(fid. varargin) button = questdlg('Are you sure you want to Exit?'. P. end fclose(fid).'No') disp('Canceled Exit operation') return elseif strcmp(button. varargin) pos_size = get(handles.Po).is a space) %Name-FrictionalCoefficient-InternalFrictionAngleCompressibility-RollGap-RollDia-Po-RollWidth % Allow the user to select the file name to save to [filename.filename).PowderName./((D/2.'Help'.% Construct the full path and save File = fullfile(pathname.varK. guidata(h.P(N). eventdata.W.*(pi/2-x-v). set(handles. end %select the first powder in the lits set(handles.'String'.handles) end else % Save P database to the default file save(File.Name).varD.' '.P.PowderDB.. handles.D.P. {'*. % -------------------------------------------------------------------function varargout = Export_Callback(h. varargin) msgbox('Johanson Method -. % export file format is ( . PowderNum) %when a selection is made load that particular powder %check if the the user wants to load the process parameters also P=handles./((D/2).s).P(N).fr %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Description: %% A function representing the two gradient equations %% The first function represents the pressure gradient when the %% powder is slipping and the second when the powder sticks %% to the wall surface %% This format is required for the fsolve command which accepts %% a refrence to a function and solves for x %% the variables are defined in the main program function F=SlipStickFun(V) global d2r r2dD S D W d K v u x=V(1). 'Value')==1.'String'.PowderLabel.File]).'String'. % If 'Cancel' was selected then return if isequal([filename.'No'.varS.[0. % -------------------------------------------------------------------function varargout = PrintDB_Callback(h.Main) % -------------------------------------------------------------------function varargout = Exit_Callback(h.txt). varargin) % -------------------------------------------------------------------function varargout = About_Callback(h.2).. set(handles.'P') end disp(['Saved :'. %number of powders in a list for M=1:1:size(P.checkPParam.' '.2) txt=[P(N).S).pathname].P(N).*tan(d)). if get(handles. P.P(N).P. eventdata.. set(handles.0]) return else % Construct the full path and save File = fullfile(pathname.P(N).K).txt'.S. P.'Help') disp('Sorry. pathname] = uiputfile( .RW].Main. y-(K. end disp(['Exported : '.RW).' '. set(handles.'No').*cos(x)))]. handles.'String'. F=[y-(4. varargin) % -------------------------------------------------------------------function LoadPowder(handles.Marcin Balicki -. eventdata.'*.*(cot(((x+v+pi/2)/2)-u)-cot(((x+v+pi/2)/2)+u))).

'on') %% Ecole Des Mines D'Albi figure(fig) %% balicki@enstimac./((D/2.'Position'. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % retrieve the latest copy of the 'handles' struct. function f=forceFactor(x) %g=plot(sin(x).*cos(x))).'Color'.answer. % modaldlg([left bottom]) locates the dialog.fig % answer = modaldlg return the answer. 2003 %% Marcin Balicki %% Ecole Des Mines D'Albi %% balicki@enstimac.4.*x). iptsetpref('ImshowBorder'./((1+S. if length(pos) ~= 2 torqueFactor.nargin)) % function takes only 0 or 4 argument if nargin == 0 | isnumeric(varargin{1}) % LAUNCH GUI fig = openfig(mfilename.'tight').fr %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Description: %% a function representing the FORCE factor %% used in calculating the roll force %% the variables are defined in the main program % Generate a structure of handles to pass to callbacks.0 20-Jul-2000 13:59:31 error(nargchk(0.%% Date May 6.figImage). else modaldlg.*tan(d)). % modaldlg('callback_name') invoke the named callback.m %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Johanson Model %% Date May 6. iptsetpref('ImshowAxesVisible'.fr delete(fig).^K). and % don't bother deleting the window! t=(((S.x) global d2r r2d S D B d K v u dsdx=[(4. pos_size = get(fig.fr %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Description: %% A function representing the differential equation of the %% pressure gradient when the powder is slipping against %% the wall surface. return 'cancel' as the answer.*(cot(((x+v+pi/2)/2)-u)-cot(((x+v+pi/2)/2)+u)))]. guidata(fig. % Last Modified by GUIDE v2. global d2r r2d S D B d K v u %Position figure if nargin == 1 f=(((S.'tight').5). %% Date May 6.*s./D-cos(x)).'off'). % Use system color scheme for figure: set(fig.jpg')./((1+S.m % otherwise. axes(handles.'Visible'. handles = guihandles(fig). we need to delete the window. pos = varargin{1}.figImage). %% balicki@enstimac. if ~ishandle(fig) answer = 'cancel'.in that case. %% Marcin Balicki handles = guidata(fig).get(0. 2003 % Also.*cos(2. and store it.new_pos. 2003 %new_pos = [pos(1) pos(2) pos_size(3) pos_size(4)].^K).'reuse'). iptsetpref('ImshowBorder'.'Position'). %% Marcin Balicki %set(fig.*(pi/2-x-v). %x=linspace(0.*(1+S/Dcos(x))).m error('Input argument must be a 2-element vector') end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %take this part out to prevent the new figure from opening off %% Johanson Model screen %% Date May 6. 2003 %% Marcin Balicki %% Ecole Des Mines D'Albi %% balicki@enstimac. %axes(handles. %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Description: %% The help figure code %% It displays helpful information and is called from the help %% pulldown menu %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Note: %% The program was developed on a Solaris machine %% Graphics may be different on other platforms function answer = modaldlg(varargin) % modaldlg Application M-file for modaldlg./D)./D-cos(x)).fr end %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Description: %% a function representing the TORQUE factor % Wait for callbacks to run and window to be dismissed: %% used in calculating the roll TORQUE uiwait(fig). handles). imshow('johansonModel. and %% Johanson Model return the answer. %% the variables are defined in the main program % UIWAIT might have returned because the window was deleted using % the close box .*cos(x). forceFactor. %% Ecole Des Mines D'Albi answer = handles. we got here because the user pushed one of the two buttons. This function representation is used %% by the numerical ODE solver %% %% the variables are defined in the main program function dsdx=slipODE(s./D).*cos(x))).'defaultUicontrolBackgroundColor')). function t=torqueFactor(x) global d2r r2d S D B d K v u 78 .x).

end * elseif ischar(varargin{1}) % INVOKE NAMED SUBFUNCTION The program was developed on a Solaris machine. b) Type nip on the Matlab command line.edu 79 .JOHANSON METHOD AUTHOR . end end % -----------------------------------------------------------% No button callback stores 'no' in the handles struct. Once Matlab is up and running there are two methods of stating the program: a) Click on File Open. ENJOY! ROLLING COMPACTION OF POWDERS .m ODE for the powder while slip occurs forceFactor.MARCIN BALICKI Ecole des Mines d'Albi 2003 README. handles). varargin) handles.main program nip. eventdata.m help menu modaldlg.fig help menu graphical user interface johansonModel. Required files: nip.m torque factor equation modaldlg.m This file .figure1). % FEVAL switchyard end catch disp(lasterr).m two functions representing the state of the powder slipODE. This will open a Graphical User Interface (GUI).fig the graphical user interface for this program SlipStickFun.m force factor equation torqueFactor. click on nip. % FEVAL switchyard else feval(varargin{:}). uiresume(handles. guidata(h.jpg image of the system Run Instructions: All the files should be located in the same directory. OR CALLBACK Graphics may be different on other platforms.TXT balick@cooper. try if (nargout) [varargout{1:nargout}] = feval(varargin{:}). choose the directory containing required files.m. If the local path is the directory containing the required files a GUI will appear. handles. % -----------------------------------------------------------function varargout = noButton_Callback(h. and % stores the modified handles struct % (so the main function can see the change).answer = 'OK'.

Author : Marcin BALICKI Home Address : 87 Dobbin Street Apartment 210 Brooklyn.com 80 . NY 10003 USA E-Mail : conceptcatcher@hotmail. NY 11222 USA School Address: The Cooper Union 51 Astor Place New York.