Sometimes, curves of flow stress as function of flow strain might be
of high vibration, therefore the fitting process for all data is
necessary. However, in most circumstances, raw stress-strain curves
always present too complicated appreance to be fitted by a single linear
model. The function KFprocess() in this package is designed
to solve this problem. From the aforementioned raw stress-strain curves
generated by SSplots(TPMdata, 2, mfrow=c(2, 2)), it is not
difficult to find for most curves, vibration starts from where the
plastic deformation occurs; Using the dV as 0.3 and
dW as 0.006, the main paths of flow stress vs. flow strain
curves can successfully obtained:
Fitted_data <- KFprocess(TPMdata, dV = 0.3, dW = 0.006)
SSplots(Fitted_data, 2, mfrow=c(2, 2))

Compared to the raw curves, we can find the fitted curves keep the
most appearance with less vibrations or noises. For desired output, you
may try different combinations of arguments dV and
dW. Help documentation and references might be helpful. The
calculation of adiabatic heating correction will utilize the integral of
those curves, the smoothing by Kalman will make a more robust output
rationally.
 
Adiabatic heating correction
Adiabatic heating correction can be implemented after smoothing if it
is necessary. We can use the function TCorrect() to output
the adiabatic heating correction on data by declaring some necessary
material contants. Take the conventional steel as the example, the heat
capacity constant and material density are 502.416 J/(kJ*K) and 7.8
g*cm^(-3). The corrected data of flow strain ranged from 0 to 0.9 with
0.02 increase in each step would be:
TCorrect_data <- TCorrect(TPMdata, 2, 3, 0.9, 7.8, 502.416, seq(0, 0.9, 0.02))
SSplots(TCorrect_data, 2, mfrow=c(2, 2))

The 2nd and 3rd argument in TCorrect() are integers to
specify the layer for temperatures and strain rates.
After temperature correction, it is noted that flow stress increase
significantly in low temperature, high strain rate, the two conditions
which is experientially corresponding to our common sense that working
hardening effect will be even obvious.
 
Automatic calculation
On the basis of dynamic materials modeling (DMM), constructive
function and all material constants can be calculated from a certain
strain rate-temperature table. The function DMMprocess
includes all calculation steps for DMM processing. Call it on our
previous result (strain rate-temperature table through specified value
of strain), the complete output can be observed as following:
DMM <- DMMprocess(epstable)
DMM
#> $MaterialCoefficients
#> $MaterialCoefficients$base
#> [1] 10
#> 
#> $MaterialCoefficients$epsilon.strain
#> [1] 0.7
#> 
#> 
#> $tablelist
#> $tablelist$SRTtable
#>             900       950      1000      1050      1100      1150      1200
#> 0.001  93.20607  72.89237  56.57545  41.81621  28.54170  16.14671  4.628616
#> 0.01  173.00795 138.43819 108.38777  83.91802  57.85085  37.67723 17.191613
#> 0.1   254.18349 205.85830 161.76956 120.09987  95.91450  66.25144 39.840429
#> 1     292.08106 240.83446 201.05563 166.40103 133.61666 103.63520 78.347986
#> 
#> $tablelist$etatable
#>             900       950      1000      1050      1100      1150      1200
#> 0.001 0.4821623 0.4989540 0.5143547 0.5917198 0.5232698 0.6239722 0.8350506
#> 0.01  0.3589281 0.3674713 0.3650931 0.3429635 0.4142833 0.4550536 0.6160868
#> 0.1   0.2056066 0.2140968 0.2290617 0.2246296 0.3048442 0.3439621 0.4698911
#> 1     0.0104753 0.0329846 0.1208608 0.3033972 0.1983005 0.3234620 0.4645742
#> 
#> $tablelist$xitable
#>               900        950       1000       1050       1100      1150
#> 0.001 0.224795781 0.22189737 0.19878697 0.03604194 0.24504314 0.1575992
#> 0.01  0.156394203 0.15762142 0.15510319 0.12251926 0.19505528 0.1866591
#> 0.1   0.083198325 0.08768193 0.10260601 0.12190650 0.14289945 0.1783580
#> 1     0.003901329 0.01276194 0.05634805 0.23643104 0.09207504 0.2042067
#>             1200
#> 0.001 -0.2421264
#> 0.01   0.1417022
#> 0.1    0.2411929
#> 1      0.3590626
#> 
#> 
#> attr(,"class")
#> [1] "DMMresult"
If the constructive function is also the thing we concerned, set the
argument ConsFunc in DMMprocess as
TRUE:
DMM <- DMMprocess(epstable, ConsFunc = TRUE)
#> Constitutive equation in0.7strain:
#> Epsilon=A{[sinh(Alpha*Sigma)]^n}*exp[-Q/(RT)]
#> Where A =1458354157082819s^-1
#>       Alpha =0.0125766595139204MPa^-1 = 1.257666e-02Pa^-1
#>       Q =427084.271412688J/mol = 427.084271412688kJ/mol
#>       R = 8.314J/(mol*K)
#>       Epsilon is strain rate
#>       Sigma is flow stress
#>       T is Temperature (K)
Additionally, if the argument InteractMode is TRUE, all
computation process and corresponding fitting figures can be output step
by step. There shows some results in following figures:







All workflow control will be prompted in the console, something
like:

 
Preparation for visualization
As we can see, the “etatable” and “xitable” in tablelist are two
constitutive parts for building processing-map. The former is for power
dissipation efficiency factor eta, and the later is for rheological
stability coefficient xi. However, since the values in both are
discrete, regression process for these tables is necessary.
Support vector regression (SVR)
is suggested in this package. The function SVRModel will
return a regression result which can be utilized by following functions
for plots.
The following demonstration save the returned result into the
vairable “PLTbd”, for the meaning of “Plots builder”.
 
2D processing map visualization
Function TPM2dplt can generate a thermal processing map
from regression result easily. Following codes demonstrates the
processing map from “PLTbd” with default settings:

In this processing map plot, customarily the power dissipation
efficiency factor eta is denoted by contour with gradient blue, while
the rheological stability coefficient xi is represented by a gradient
colours from blue (low) to red (high). Annotation in top-left show the
strain condition for current processing map.
Locations for annotation, gradient colors for rheological stability
coefficient xi is customizable in TPM2dplt function. Refer
the documentation for details.
 
3D processing map visualization
Function TPM3dplt can build a thermal processing results
as similar as TPM2dplt did. The difference is, eta and xi
will be separately plotted.
By running the following code, we can easily obtain the results as
shown in the next figure.

These two 3d surfaces are generated through the rgl package,
therefore it will be very convenient to utilize 3d rotation on our plots
for further analysis in details.
Especially, the xi plots is coupled with a specific plane, z=0, in
order to make divisions for the stable and unstable regions (doesn’t
included in demo figure). If the prediction for xi contained certain
negative values, this plan will be visible in 3d surface plot.