Digital Twin of a Manufacturing Process in a JMP data table

Slides:



Advertisements
Similar presentations
Sensitivity Analysis A systematic way of asking “what-if” scenario questions in order to understand what outcomes could possibly occur that would effect.
Advertisements

McGraw-Hill/Irwin ©2008 The McGraw-Hill Companies, All Rights Reserved TECHNOLOGY PLUG-IN T4 PROBLEM SOLVING USING EXCEL Goal Seek, Solver & Pivot Tables.
The Components There are three main components of inDepth Lite, inDepth and inDepth+ Real Time Component Reporting Package Configuration Tools.
12 Inventory Management.
Experimental Design, Response Surface Analysis, and Optimization
Macros Tutorial Week 20. Objectives By the end of this tutorial you should understand how to: Create macros Assign macros to events Associate macros with.
How organizations use ICT:. Technological advancements in  process monitoring,  control  and industrial automation in recent years have improved the.
Adding Automated Functionality to Office Applications.
DEMONSTRATION FOR SIGMA DATA ACQUISITION MODULES Tempatron Ltd Data Measurements Division Darwin Close Reading RG2 0TB UK T : +44 (0) F :
The Project AH Computing. Functional Requirements  What the product must do!  Examples attractive welcome screen all options available as clickable.
General Purpose Packages Spreadsheets. What is a Spreadsheet? A Spreadsheet is a computer program used mainly for recording mathematical data such as.
T U T O R I A L  2009 Pearson Education, Inc. All rights reserved. 1 9 Car Payment Calculator Application Introducing the Do While...Loop and Do Until...Loop.
Mr Shum Spreadsheets eBooklet. Key Words Key Word CellAn individual box on a spreadsheet RowCells going across in an horizontal line. All rows have a.
Chapter 06: Lecture Notes (CSIT 104) 1 Copyright © 2008 Pearson Prentice Hall. All rights reserved. 1 1 Copyright © 2008 Prentice-Hall. All rights reserved.
AICT5 – eProject Project Planning for ICT. Process Centre receives Scenario Group Work Scenario on website in October Assessment Window Individual Work.
Spreadsheet-Based Decision Support Systems Chapter 22:
T U T O R I A L  2009 Pearson Education, Inc. All rights reserved Interest Calculator Application Introducing the For...Next Repetition Statements.
The AIE Monte Carlo Tool The AIE Monte Carlo tool is an Excel spreadsheet and a set of supporting macros. It is the main tool used in AIE analysis of a.
Lecture Excel: Macros & Pivot Tables. Macros A macro is a series of commands that are stored and can be run whenever you need to perform the task.
1 Performing Spreadsheet What-If Analysis Applications of Spreadsheets.
Chapter 12: How Long Can This Go On?
The Scientific Method Honors Biology Laboratory Skills.
*** CONFIDENTIAL *** © Toshiba Corporation 2008 Confidential Creating Report Templates.
VBA Lab 2 I ns.Samia Al-blwi. Visual Basic Grammar Object: Visual Basic is an object-oriented language. This means that all the items in Excel are thought.
Copyright © 2008 Pearson Prentice Hall. All rights reserved Chapter 6 Data Tables and Amortization Tables Exploring Microsoft Office Excel 2007.
Rules and Investigations Modelling. A model by any other name? There are real life models…
Outline of Chapter 9: Using Simulation to Solve Decision Problems Real world decisions are often too complex to be analyzed effectively using influence.
Test and Review chapter State the differences between archive and back-up data. Answer: Archive data is a copy of data which is no longer in regular.
1.Click on run continuously to easily change the toggles (red) and turn RT graph on (orange). 2.All inputs are on the right side of the program, with.
Spreadsheet Data Tables Data Table 1 allows you to change one input variable’s value at a time and record the impact that the input assumption has on several.
Simulation is the process of studying the behavior of a real system by using a model that replicates the system under different scenarios. A simulation.
Spreadsheet Engineering Builders use blueprints or plans – Without plans structures will fail to be effective Advanced planning in any sort of design can.
VISUAL C++ PROGRAMMING: CONCEPTS AND PROJECTS Chapter 5A Repetition (Concepts)
Animal Shelter Activity 2.
Sensitivity Analysis A systematic way of asking “what-if” scenario questions in order to understand what outcomes could possibly occur that would effect.
1 Module One: Measurements and Uncertainties No measurement can perfectly determine the value of the quantity being measured. The uncertainty of a measurement.
Microsoft Excel 2013 Chapter 8 Working with Trendlines, PivotTable Reports, PivotChart Reports, and Slicers.
Analysis of Variance l Chapter 8 l 8.1 One way ANOVA
NETSTORM.
Overview Modern chip designs have multiple IP components with different process, voltage, temperature sensitivities Optimizing mix to different customer.
Spreadsheet Engineering
IT Business Applications
Chapter 5 Spreadsheet Design
Loops BIS1523 – Lecture 10.
Computer Applications for Business
Surviving the Rain: The Six-Step Programme for a JMP® Novice Stephanie Lucas, Senior Formulation Chemist, Syngenta, Stephen.
Winners Cheque Analysis
JSL File manager Brady Brady and Don Mccormack, JMP.
Microsoft Excel A Spreadsheet Program.
Microsoft Office Illustrated
JavaScript: Functions.
Learning Excel Session 9 and 10 Dr. Chaitali Basu Mukherji.
Customization
DB Implementation: MS Access Forms
While Loops BIS1523 – Lecture 12.
Chapter 12: Automated data collection methods
Variables and Arithmetic Operations
Lecture 12: Data Wrangling
Creating Macros in Excel
Exploring Microsoft Excel
There are three main components of inDepth Lite, inDepth and inDepth+
DB Implementation: MS Access Forms
CIS16 Application Programming with Visual Basic
Exploring Microsoft® Office 2016 Series Editor Mary Anne Poatsy
Cash and Cash Management
JMP 11 added new features and improvements to CCB and MSA.
General Purpose Packages
Microsoft Excel 2007 – Level 2
and Forecasting Resources
Cascading Style Sheets CSS LAYOUT WITH GRID
Presentation transcript:

Digital Twin of a Manufacturing Process in a JMP data table Stephen Pearson, Chemical Process Statistician Syngenta Manufacturing facilities are controlled using a mixture of computer automation and experienced operators. The ‘rules’ governing the process can be derived from recorded data and approximated using column formula. The resultant digital representation of the process can be used to carry out Discrete Event Simulation (DES). The challenge comes in generating the control signals a row at a time whilst evaluating the responses as there are often feedback loops.  By using a JMP data table, any visualizations and analysis developed for the real process can be applied to the simulated results. Design of Experiments can be used to systematically see how the process might respond. After fitting a model based on many simulation runs, derived outputs such as equipment utilization can be used to aid decision making. When the difference in cost options runs to six or seven-figures this is extremely valuable. Example Simulation  Structure of Scripts and Data Table 

Manufacture of Dilithium Quantum Back Charging catalyst and packaging final material are manual operations. Production could be increased by: hiring more staff or partial automation. Impurities in the recovered solvent can lead to quality issues but costs could be reduced by: altering the strength of the Red (to include more/less solvent) or changing the amount of solvent recovered. The outcome of each scenario is uncertain so an experimental design with full replication is carried out. For a factory containing 20-30 items of equipment it takes 15 minutes to simulate a year of production and produce a JMP table ~0.5 GB in size. The results from an overnight run of simulations can be combined and a meta-model produced. With a meta-model 100,000 scenarios can be run in under a minute. Play Simulation  Solvent is charged to the reactor. Red is added followed by a catalyst. Blue is added over a longer period. The mixture is transferred to a still Some of the solvent is recovered. The Dilithium Quantum is packaged. Meta-model 

Meta-model (100,000 runs) Home Back Highlighted Yellow Region = Minimum Cost Highlighted Orange Region = Maximum Production Using the profiler alone it can be difficult to visualise how the different factor settings interact. The five factors being varied are around the edges of graphs above. The results are coloured by cost (left) and number of in-spec. batches produced (right). Regions that are highlighted in both views are potential optimum operating conditions. Current Operation

Click on a highlighted area of the table to toggle details on/off What variables should the different scenarios explore? Raw materials charge amounts. Different phase durations (operating philosophies). Equipment availability. An experimental design can be used to generate the options. Back Click on a highlighted area of the table to toggle details on/off Typical values for charge quantities, phase durations, uncontrolled conditions can be represented by a random distribution. A uniform or triangular distribution are best for approximating real data in this context. The phase numbers and resource usages can be recorded to the data table. Using the column property ‘Value Labels’ the phases can be displayed to the user as text. Most of the steps in building a discrete event simulation are repetitive, so a series of short scripts were written to automate these tasks and reduce typographical errors: Make a list of all the phases for a vessel (CTvessel_phase). Turn a phase list for a vessel (with added conditionals and/or flag changes) into an If() statement. Create an If() statement for vessels that hold resources. Create an If() statement based on time to make equipment unavailable. Scenario Constants Distributions Time Output Formula View Code Snippets  Some numbers will be constant between scenarios but are better recorded in the data table than hidden in the update code. They can be referenced using :columnName[1] In the real world the days of the week and time of the year influence operations. By simulating over an entire year or longer, seasonal effects can be taken into consideration. The time spacing is based on the length of the shortest phase. Formula columns can be used to count batches of material and keep track of quality data. These can be summarized for each scenario.

About the code Home Back Toggle Code View  Define which scenario to run. Locate Time Column. Get a list of simulation output columns (after time column, no formula) and clear contents. Create a tracker for each output column (target row number, current phase & duration, status flag). Turn off JMP internal data update and work down the table row by row. Use the code generated by the helper scripts to fill out simulation output. Alter status flags of other vessels Look up duration from the appropriate process distribution Keep track of resources produced or consumed Turn on JMP internal data update and force column formula to re-evaluate. Generate table of summary data for this scenario. Loop over previous steps for all scenarios Combine summary data from all scenarios with Design of Experiments data table. Explore results, fit model and optimise process.

About the code Home Back Toggle Text View  For( i = 1, i <= NScenarios, i++, //use :columnName[i] to refer to the cell value in row i If( currCol << Get Name( "string" ) == "DateTime", dateCol = j); If( Char( currColFormula ) == "Empty()" & j >= dateCol, currCol << Set Each Value( 0 ); vesselList = Insert( vesselList, currcol << Get Name( "String" ) ); ); Trackers( vesselList ); Eval(Parse(Eval Insert("targetRow_^currVessel^ = 1; currPhase_^currVessel^ = 0;currCT_^currVessel^ = 0;^currVessel^_Flag = 0;") ) ); dt << Begin Data Update; For Each Row( :reactor = If( reactor_Flag == -1, Lag( :reactor, 1 ), targetRow_reactor <= Row() & Lag( :reactor, 1 ) == 0, currCT_reactor = :CTreactor_Prepare; targetRow_reactor = Row() + currCT_reactor; 1;,…); dt << End Data Update; If( Char( currColFormula ) != "Empty()", currCol << Eval Formula);

Structure of Scripts and Data Table  Simulation Home Back Run all the scenarios according to the experimental design and save the summary data e.g. by batch or week. Concatenate the results and review. Summarise by scenario and join with the experimental design. Add calculated columns such as cost and model. If required simulate 100,000 runs to help visualise results. Structure of Scripts and Data Table  Meta-model 

Meta-model (100,000 runs) Home Back Highlighted Yellow Region = Minimum Cost Highlighted Orange Region = Maximum Production Using the profiler alone it can be difficult to visualise how the different factor settings interact. The five factors being varied are around the edges of graphs above. The results are coloured by cost (left) and number of in-spec. batches produced (right). Regions that are highlighted in both views are potential optimum operating conditions. Current Operation

Click on a highlighted area of the table to toggle details on/off What variables should the different scenarios explore? Raw materials charge amounts. Different phase durations (operating philosophies). Equipment availability. An experimental design can be used to generate the options. Home Back Click on a highlighted area of the table to toggle details on/off Typical values for charge quantities, phase durations, uncontrolled conditions can be represented by a random distribution. A uniform or triangular distribution are best for approximating real data in this context. The phase numbers and resource usages can be recorded to the data table. Using the column property ‘Value Labels’ the phases can be displayed to the user as text. Most of the steps in building a discrete event simulation are repetitive, so a series of short scripts were written to automate these tasks and reduce typographical errors: Make a list of all the phases for a vessel (CTvessel_phase). Turn a phase list for a vessel (with added conditionals and/or flag changes) into an If() statement. Create an If() statement for vessels that hold resources. Create an If() statement based on time to make equipment unavailable. Scenario Constants Distributions Time Output Formula View Code Snippets  Some numbers will be constant between scenarios but are better recorded in the data table than hidden in the update code. They can be referenced using :columnName[1] In the real world the days of the week and time of the year influence operations. By simulating over an entire year or longer, seasonal effects can be taken into consideration. The time spacing is based on the length of the shortest phase. Formula columns can be used to count batches of material and keep track of quality data. These can be summarized for each scenario.

About the code Home Back Toggle Code View  Define which scenario to run. Locate Time Column. Get a list of simulation output columns (after time column, no formula) and clear contents. Create a tracker for each output column (target row number, current phase & duration, status flag). Turn off JMP internal data update and work down the table row by row. Use the code generated by the helper scripts to fill out simulation output. Alter status flags of other vessels Look up duration from the appropriate process distribution Keep track of resources produced or consumed Turn on JMP internal data update and force column formula to re-evaluate. Generate table of summary data for this scenario. Loop over previous steps for all scenarios Combine summary data from all scenarios with Design of Experiments data table. Explore results, fit model and optimise process.

About the code Home Back Toggle Text View  For( i = 1, i <= NScenarios, i++, //use :columnName[i] to refer to the cell value in row i If( currCol << Get Name( "string" ) == "DateTime", dateCol = j); If( Char( currColFormula ) == "Empty()" & j >= dateCol, currCol << Set Each Value( 0 ); vesselList = Insert( vesselList, currcol << Get Name( "String" ) ); ); Trackers( vesselList ); Eval(Parse(Eval Insert("targetRow_^currVessel^ = 1; currPhase_^currVessel^ = 0;currCT_^currVessel^ = 0;^currVessel^_Flag = 0;") ) ); dt << Begin Data Update; For Each Row( :reactor = If( reactor_Flag == -1, Lag( :reactor, 1 ), targetRow_reactor <= Row() & Lag( :reactor, 1 ) == 0, currCT_reactor = :CTreactor_Prepare; targetRow_reactor = Row() + currCT_reactor; 1;,…); dt << End Data Update; If( Char( currColFormula ) != "Empty()", currCol << Eval Formula);