Please ensure you adhere to the following guidelines before using the Probability Density Function toolkit:
File Naming
Rename your CSV file to match the plant section being analyzed:
CementAPCToolKit_RawMill.csv
CementAPCToolKit_CoalMill.csv
CementAPCToolKit_Kiln.csv
CementAPCToolKit_CementMill.csv
Header & Column Formatting
Include a single header row with clear labels for all dependent and independent variables.
Replace spaces with underscores (e.g., Elevator_Load
rather than Elevator Load
).
Omit units from column names; units should not be embedded in the header.
Ensure the feed column is labeled Total_Feed
.
Columns may appear in any order.
Data Formatting
Follow the formatting conventions illustrated in the provided screenshot (consistent delimiters, no embedded units, etc.).
Upload
Click Select file, choose your preprocessed CSV, then click Upload.
Run Analysis
Once the upload completes, click Run to execute the toolkit.
When prompted, specify the plant section by entering one of:
RawMill | CoalMill | Kiln | CementMill
(Use the exact suffix matching your file’s name.)
If you encounter any issues:
Navigate to Contact, complete the contact form, and we will respond promptly.
Alternatively, email us at [email protected].
By following these steps, you will ensure a seamless experience and accurate PDF–based analysis.
The APC performance metrics—Total Feed and Specific Power Consumption—were computed using Python 3. The following outline describes how to reproduce the Probability Density Function (PDF) analysis:
Development Environment
The examples below use Jupyter Notebook for demonstration.
If you run them in PyCharm, Spyder, or another IDE, you may need to adjust import paths or display settings.
Required Libraries
import pandas as pd # Data loading and manipulation
import numpy as np # Numerical operations
import matplotlib.pyplot as plt # Plotting utilities
from scipy.stats import norm # PDF computation
1. Load the Dataset: Ensure the CSV conforms to the prescribed formatting rules (single header, Total_Feed
column, underscore-separated names, etc.).
df_on = pd.read_excel('Dataset_BM_online.xlsx')
df_on
2. Sort by Total Feed
df_on = df_on.sort_values(['Total_Feed'], ascending=True)
df_on
3. Summarize your data
df_on['Total_Feed'].describe()
1. Calculate Mean and Standard Deviation
cols = list(df_on.columns.values)
Feed_mu = df_on[cols[3]].mean()
Feed_sigma = df_on[cols[3]].std()
Feed_sigma
2. Compute Z-Scores
# z = (x – μ) / σ
df_on['z_score'] = (df_on.iloc[:, 2] - Feed_mu) / Feed_sigma
df_on
3. Resort by Z-score
df_on = df_on.sort_values(['z_score'], ascending=True)
df_on
4. Save the enriched dataset
df_on.to_excel('modv1_Dataset_BM_online.xlsx', index=False)
# — or —
df_on.to_csv('modv1_Dataset_BM_online.csv', index=False)
5. (Re)import plotting utilities
import numpy as np
from matplotlib.ticker import (
StrMethodFormatter,
AutoMinorLocator,
FormatStrFormatter,
MultipleLocator
)
%matplotlib inline
6. Plot the PDF of z-scores
ax = plt.subplot()
plt.title('Probability Density Function of Total Feed Online')
plt.plot(df_on['z_score'], norm.pdf(df_on['z_score'], 0, 1))
plt.xlabel('Total Feed Z score')
plt.ylabel('Density % distribution')
7. Annotate mean and max points
# Max
plt.axvline(df_on['z_score'].max(), color='red', linestyle='--', linewidth=3)
plt.axhline(norm.pdf(df_on['z_score'].max()), color='red', linestyle='--', linewidth=3)
# Mean
plt.axvline(df_on['z_score'].mean(), color='green', linestyle='--', linewidth=4)
plt.axhline(norm.pdf(df_on['z_score'].mean()), color='green', linestyle='--', linewidth=4)
8. Configure x-axis ticks
plt.xticks(
np.arange(
df_on['z_score'].min() - 1,
df_on['z_score'].max() + 1,
1
)
)
9. Format axis label precision
plt.gca().yaxis.set_major_formatter(StrMethodFormatter('{x:.1f}'))
plt.gca().xaxis.set_major_formatter(StrMethodFormatter('{x:.2f}'))
10. Add gridlines and minor ticks
plt.grid(b=True, which='major', color='k', linestyle='-')
plt.grid(b=True, which='minor', color='r', linestyle=':', alpha=0.2)
plt.minorticks_on()
fig = plt.gcf()
fig.set_size_inches(15, 7.5, forward=True)
plt.savefig('Pdf_online.png', dpi=72, bbox_inches='tight')
plt.show()
Probability Density Function of Total Feed and its Z-score density distribution.
Total Feed vs Z-scores: To trace the % distribution of Total Feed samples from the PDF curve.
Visualization: The resulting curve plots the standard-normal PDF against the computed z-scores, highlighting the distribution of your mill feed data.
Distribution Tracing: Overlaying your sample z-scores on this curve enables you to quantify the percentile position of any feed value.
If you encounter any issues:
Visit the Contact page and submit the form, or
Email [email protected].
We will respond promptly to ensure your analysis proceeds smoothly.