Tg and Moisture
Quick Start
The glass transition temperature, Tg, of a food powder depends strongly on how much water it contains. That depends on the Moisture Sorption isotherm. As the Tg goes down, the powder gets softer and might cake, as in the Powder-Moisture app.
Credits
This app is the second part of a chain of logic1 from a Nestlé & U Sheffield team.
Tg and Moisture
//One universal basic required here to get things going once loaded
window.onload = function () {
//restoreDefaultValues(); //Un-comment this if you want to start with defaults
Main();
};
//Any global variables go here
//Main is hard wired as THE place to start calculating when input changes
//It does no calculations itself, it merely sets them up, sends off variables, gets results and, if necessary, plots them.
function Main() {
saveSettings();
//Send all the inputs as a structured object
//If you need to convert to, say, SI units, do it here!
const inputs = {
Tg: sliders.SlideTg.value,
K: sliders.SlideK.value,
PercW: sliders.SlidePercW.value,
}
//Get all the resonses as a structure
const result = CalcIt(inputs)
//Set all the text box outputs
document.getElementById('TgWet').value = result.TgWet
if (result.plots) {
for (let i = 0; i < result.plots.length; i++) {
plotIt(result.plots[i], result.canvas[i]);
}
}
}
//Here's the real app calculation
function CalcIt({ Tg,K,PercW }) {
//The structure automatically has the names provided from input
//By convention the values are provided with the correct units within CalcIt
let WPts=[]
const Tgw=-135
var GotWater=false,TgActual=0
for (var i = 0; i <= 95; i++) {
w=i/100
Tgwet=((1-w)*Tg+w*K*Tgw)/((1-w)+w*K)
WPts.push({x:i,y:Tgwet})
if (i>=PercW && !GotWater){
GotWater=true
TgActual=Tgwet
}
}
//Now we return everything - text boxes, plot and the name of the canvas, which is 'canvas' for a single plot
const prmap = {
plotData: [WPts], //An array of 1 or more datasets
lineLabels: ["Tg"], //An array of labels for each dataset
hideLegend: true,
xLabel: 'Water&%', //Label for the x axis, with an & to separate the units
yLabel: 'Tg&°C', //Label for the y axis, with an & to separate the units
y2Label: null, //Label for the y2 axis, null if not needed
yAxisL1R2: [], //Array to say which axis each dataset goes on. Blank=Left=1
logX: false, //Is the x-axis in log form?
xTicks: undefined, //We can define a tick function if we're being fancy
logY: false, //Is the y-axis in log form?
yTicks: undefined, //We can define a tick function if we're being fancy
legendPosition: 'top', //Where we want the legend - top, bottom, left, right
xMinMax: [,], //Set min and max, e.g. [-10,100], leave one or both blank for auto
yMinMax: [,], //Set min and max, e.g. [-10,100], leave one or both blank for auto
y2MinMax: [,], //Set min and max, e.g. [-10,100], leave one or both blank for auto
xSigFigs: 'P3', //These are the sig figs for the Tooltip readout. A wide choice!
ySigFigs: 'P3', //F for Fixed, P for Precision, E for exponential
}
return {
TgWet: TgActual.toFixed(1),
plots: [prmap],
canvas: ['canvas'],
};
}
The glass transition temperature, Tg, shows when there is large-scale motion in a powder material such as starch or a sugar. The lower the Tg, the more likely the powder might be deformed and, ultimately, stick together. The Tg is calculated via the Gordon-Taylor formula based on the Tg of water (-135°C), the dry Tg of the particle and w, the fraction of water in the particle. The parameter K controls the size of the effect and needs to be found by experiment or from extensive datasets of foodstuffs.
`T_g= ((1-w)T_g+w.K.T_"gw")/((1-w)+w.K)`
To do the calculation you need to know w. If you know the RH then you can calculate w via the Moisture Sorption app. Whether the powder will stick together is calculated via the Powders-Moisture app.
1Christine I. Haider, Gerhard Niederreiter, Stefan Palzer, Michael J. Hounslow, Agba D. Salman, Unwanted agglomeration of industrial amorphous food powder from a particle perspective, Chem. Eng. Res. & Design, 132, 2018, 1160–1169