Jump to content

Recommended Posts

  • Seeq Team
Posted

How can i calculate the mean kinetic temperature (MKT)?

In many industries (pharmaceuticals, food and beverage, etc.), mean kinetic temperature (MKT) is used to measure the temperature fluctuations of a material during storage and shipment. Mean Kinetic Temperature is a non-linear weighted average temperature that is set up to provide an impact on product stability. In general, product stability follows an exponential trend with temperature as it is inherently a decomposition reaction of the desired product. Therefore, the mean kinetic temperature takes into account the exponential reaction rate to determine the average temperature weighted by the kinetics of the reaction over time.

The formula for mean kinetic temperature is:
{\displaystyle T_{K}={\cfrac {\frac {\Delta H}{R}}{-\ln \left({\frac {{t_{1}}e^{\left({\frac {-\Delta H}{RT_{1}}}\right)}+{t_{2}}e^{\left({\frac {-\Delta H}{RT_{2}}}\right)}+\cdots +{t_{n}}e^{\left({\frac {-\Delta H}{RT_{n}}}\right)}}{{t_{1}}+{t_{2}}+\cdots +{t_{n}}}}\right)}}}

Where:

 is the mean kinetic temperature in Kelvin
 is the activation energy (in kJ mol−1)
 is the gas constant (in J mol−1 K−1)
 to  are the temperatures at each of the sample points in kelvins
 to  are time intervals at each of the sample points

 

  • Like 2
  • Seeq Team
  • Solution
Posted

To calculate the mean kinetic temperature in Seeq, we need to break the formula up into several steps: 

 

1. Start by calculating the time intervals for each of the data points (tn) i.e. the time between each data point. In many cases these are evenly spaced and the formula simplifies, but in case they are not, this can be calculated in Seeq Formula by creating capsules for each data point and then aggregating the duration of each of those capsules:

$temp.tocapsules().aggregate(totalduration(),$temp.tocapsules(),startkey()).tostep() //Calculate the time between each datapoint as a new signal

In the below image i an visualizing the signal created that measures the time between each datapoint with the data points shown. Here my signal is regularly sampled so the resulting signal has a constant value

image.png

 

2. Next, calculate the exponential relationship for each sample point (t*exp(-deltaH/RTn)) using Seeq Formula. For this example, delta H was set to 83.14 kJ/mol:

$H = 83.14kJ/mol

$TimeInterval*CONSTANT.E^(-$H/CONSTANT.R/$temp)

Here i have calculated the exponential relationship:

image.png

3. At this point, the desired time period to perform the MKT calculation over must be selected. This can be done by creating a capsule with the Manual Condition tool for a manual entry period, or can be calculated from any other condition that has been created. The desired time period can be as long or short as desired.

In this screenshot i am creating a Manual Condition for my time range:

image.png

4. The next step is to sum the numerator and denominator of the natural log portion of the MKT calculation. These summations across the time period signified in step 3 can be performed with the Signal from Condition tool by selecting the sum statistic, the time period from step 3, and the aggregation at the middle timestamp of the condition. This step should be performed for both calculated signals from steps 1 (time intervals for denominator) and 2 (exponential rates for numerator).

Here i am showing the Signal from Condition calculation for the sum of the exponential relationship:

image.png

5. Finally, the MKT calculation can be calculated with Seeq Formula, Here the Numerator is the exponential relationship and the denominator is the sum of time intervals. Of note: the resulting calculation will have units that match your original degree Unit of Measure even though the resultant units will show as otherwise, it is best to use .setUnits() to adjust your units of measure so they are accurate. Here my original units were in Farenheight but i want my output in K so i have set, then converted my units.

$H = 83.14kJ/mol

(($H/CONSTANT.R)/(-ln($TotalizedNumerator/$TotalizedDenominator))).setUnits('F').convertUnits('K')

image.png

 

 

As an example, below is a graph showing this calculation being done over multiple time periods of interest (green capsules at top) in my Manual Condition:

image.png

 

Content Verified DEC2023

image.png

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...