intro industrial algorithms
DESCRIPTION
Industrial Algorithms (IAL) specializes in providing efficient solutions for modeling and solving advanced planning and scheduling (APS) problems as well as data reconciliation and parameter estimation (DRPE) problems in industry. The principals have worked in companies such as Shell, Exxon, Honeywell, Dash Optimization, Axioma, FICO, Verisk, Interthinx and consulted for more than 100 companies gaining over 50 man-years of both production and process modeling and optimization experience for planning, scheduling, control and estimation problems in the process and financial industries. Our modeling and solving system is the next-generation in developing and deploying decision-making and data-mining solutions. We have a unique and innovative approach to automating the creation and configuration of mathematical programming problems to manage its complexity, hierarchy and uncertainty.TRANSCRIPT
Using IMPL for Advanced
Planning & Scheduling (APS)
Solutions
January 2014
Industrial Algorithms LLC.
1/27/2014 Copyright, Industrial Algorithms LLC.
Agenda
• IAL Introduction
• What is IMPL?
• Advanced Planning & Scheduling (APS)
• APS IMPL Examples
• APM IMPL Demonstration
• Links to Other Systems (IBM’s ODME)
2
Our Mission Statement
• To provide advanced modeling and solving
tools for developing and deploying industrial
applications in important decision-making
and data-mining areas.
• Our targets are:
– Operating companies in the process industries.
– Consulting service providers.
– Application software providers.
3
Our Focus
• IAL develops and markets IMPL, the world’s
leading software for flowsheet optimization in
both off and on-line environments.
• IAL provides in-house training for customers
along with complete software support and
consulting services.
• IAL provides Industrial Modeling Frameworks
(IMF’s) for many problem types which provides
a pre-project or pre-solution advantage.
4
5
Our Development Directions
Improving Performance
Ease of Use
Types of Problems
6
Our Development Directions
Ease of Use
Types of Problems
Improving Performance
Our Industrial Modeling Platform
(IMPL)
• IMPL stands for “Industrial Modeling & Programming Language” and is our proprietary platform.
– You can “interface”, “interact”, “model” and “solve” any process-chain, supply-chain, demand-chain and/or value-chain optimization problem.
• IMPL is suitable for:
– Advanced Planning & Scheduling (APS),
– Advanced Production/Process Optimization (APPO) and
– Advanced Performance Management (APM). 7
• Problems are configured/coded using “sheets”
for each “shape” either by:
– Interfacing with our flat-file Industrial Modeling
Language (IML) or
– Interactively with our Industrial Programming
Language (IPL) embedded in a computer
programming language such as C, C++, C#, Java,
Python, Excel/VBA, etc.
– All data are keyed by UOPSS where the attributes
are specified using the Quantity, Logic & Quality
Phenomena (QLQP) including Time.
How do we configure/code
problems?
8
How do we configure/code
problems? (cont’d)
9
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Constriction Data (Practices/Policies)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
&sUnit,&sOperation,@rUpTiming_Lower,@rUpTiming_Upper
Blender,Crudeoil,3.0,
&sUnit,&sOperation,@rUpTiming_Lower,@rUpTiming_Upper
&sUnit,&sOperation,&sPort,&sState,&sUnit,&sOperation,&sPort,&sState,@rUpTiming_Lower,@rUpTiming_Upper
TK3,Crudeoil,o,,Pipestill,Fuels,i,,19.0,
TK4,Crudeoil,o,,Pipestill,Fuels,i,,19.0,
&sUnit,&sOperation,&sPort,&sState,&sUnit,&sOperation,&sPort,&sState,@rUpTiming_Lower,@rUpTiming_Upper
&sUnit,&sOperation,@rFillDrawDelaying_Lower,@rFillDrawDelaying_Upper
TK1,Light,9.0,
TK2,Heavy,9.0,
TK3,Crudeoil,3.0,
TK4,Crudeoil,3.0,
&sUnit,&sOperation,@rFillDrawDelaying_Lower,@rFillDrawDelaying_Upper
&sUnit,&sOperation,&sPort,&sState,@iMultiUse_Lower,@iMultiUse_Upper
Blender,Crudeoil,o,,1,1
Pipestill,Fuels,i,,1,1
&sUnit,&sOperation,&sPort,&sState,@iMultiUse_Lower,@iMultiUse_Upper
&sUnit,@sZeroDownTiming
Pipestill,on
&sUnit,@sZeroDownTiming
IML Frames (Sheets) in CSV Format
How do we configure/code
problems? (cont’d)
10
IPL Functions in Python (CTYPES)
rtnstat = interacter.IMPLreceiveUO(uname,oname,utype,usubtype,uuse,IMPLkeep)
rtnstat = interacter.IMPLreceiveUOPS(uname,oname,pname,sname,ptype,psubtype,IMPLkeep)
rtnstat = interacter.IMPLreceiveUOPSUOPS(uname,oname,pname,sname,uname2,oname2,pname2,sname2,IMPLkeep)
rtnstat = interacter.IMPLreceiveUOOG(uname,oname,ogname,IMPLkeep)
rtnstat = interacter.IMPLreceiveUOGOGO(uname,ogname,ogname2,oname,IMPLkeep)
rtnstat = interacter.IMPLreceiveUOrate(uname,oname,lower,upper,IMPLkeep)
rtnstat = interacter.IMPLreceiveUOPSteerate(uname,oname,pname,sname,lower,upper,IMPLkeep)
rtnstat = interacter.IMPLreceiveUOPStotalrate(uname,oname,pname,sname,lower,upper,IMPLkeep)
rtnstat = interacter.IMPLreceiveUOPSyield(uname,oname,pname,sname,c_double(1.0),c_double(1.0),c_double(0.0),IMPLkeep)
rtnstat = interacter.IMPLreceiveUOuptime(uname,oname,lower,upper,IMPLkeep)
rtnstat = interacter.IMPLreceiveUOPSflowweight(uname,oname,pname,sname,c_double(-1.),c_double(0.),c_double(0.),c_double(0.),IMPLkeep)
rtnstat = interacter.IMPLreceiveUOsetupopen(uname,oname,c_double(1.),c_double(-2.),IMPLkeep)
rtnstat = interacter.IMPLreceiveUOsetuporder(uname,oname,lower,upper,begin,end,IMPLkeep)
rtnstat = interacter.IMPLreceiveUOPSUOPSsetuporder(uname,oname,pname,sname,uname2,oname2,pname2,sname2,lower,upper,begin,end,IMPLkeep)
rtnstat = interacter.IMPLreceiveUOPSholduporder(uname,oname,pname,sname,lower,upper,target,begin,end,IMPLkeep)
How do we represent the
flowsheet? Perimeters – Supply/Demand Points or Sources/Sinks
Pools – Inventory or Holdup
Batch-Processes – Variable-Size & Fixed-Time (VSFT) or Fixed-Size & Variable-Time (FSVT)
Continuous-Processes – Blenders, Splitters, Separators, Reactors , Fractionators & Black-Boxes
Parcels – Moveable/Transportable Inventory or Holdup with Round-Trip Travel-Time
Pipelines – Moveable/Transportable Inventory as FIFO (First-In-First-Out)
Port-In – Flows into a Unit (similar to a nozzle).
Port-Out – Flows out of a Unit
Dimensional-Processes – Geometry Transforms (Reels, Rolls, Sheets, Ingots, Logs, etc.)
Pilelines – Stackable Inventory as LIFO (Last-In-First-Out)
11
• IMPL models the “logistics” (quantity & logic)
and “quality” (quantity & quality) sub-problems
independently but integrated.
– Quantity details include:
– Flows, holdups, yields, etc.
– Logic details include:
– Setups, startups, switchovers, shutdowns and sequence-
dependent switchovers, etc.
– Quality details include:
– Densities, components, properties, conditions and
coefficients i.e., catalyst activity, enthalpy, etc.
How do we formulate the
variables and constraints?
12
* Similar to Cires, Hooker & Yunes (July
2013)’s Meta-Constraints & Semantic
Typing *
• IMPL has six system architecture components
we call SIIMPLE:
– Server, Interfacer (IML), Interacter (IPL), Modeler,
Presolver DLL’s and an Executable (the
executable can be coded in any computer
programming language that can call DLL’s/SO’s).
– Interfacer, Interacter and Modeler are domain-
specific whereas the Server, Presolver and
Executable are not i.e., they are domain-inspecific
or generic for any type of optimization problem.
What is our system architecture?
13
14
Our Development Directions
Ease of Use
Types of Problems
Improving Performance
15
Recent Projects & Applications
• Fuels Pipeline Optimization with DRA.
• Jet Fuel Supply Chain.
• Fast Moving Food Industry Planning and
Scheduling.
• On-line Diesel Blend Scheduling.
• Gasoline Blend Monitoring with ProSensus.
• Data Reconciliation Engine embedded in
STAN2 software from the Technical University
of Vienna (Civil Engineering).
16
Industrial Modeling Frameworks
(IMF’s)
• Provides a “starting-point” or “head-start” for a
solution using IMPL.
• Enables implementing smaller projects with
larger benefits versus installing a large
program with small benefits.
• Reduces the “modeling-barrier” in terms of
developing and deploying solutions more
quickly and effectively i.e., we are faced with
both modeling and solving bottlenecks.
Advanced Planning & Scheduling
(APS)
• IMPL supports both planning and scheduling
optimization problems handling both logistics
and quality details in a coordinated manner.
• IMPL uses “discrete-time” with “big” (planning)
and “small” (scheduling) time-buckets for
logistics optimization.
• IMPL uses “discrete-time” and “distributed-time”
i.e., continuous-time/event-based using a
common/global time-grid for quality
optimization. 17
Crude-Oil Blend Scheduling
Optimization (CBSO-IMF)
18
Kelly, J.D., Mann, J.L., “Crude-Oil Blend Scheduling Optimization: An Application with Multi-Million Dollar Benefits”,
Hydrocarbon Processing, June/July, 2003.
• Key logistics details …
– 3-h uptime (run-length) for blend header.
– 19-h uptime for tank-to-pipestill flows.
– 9-h fill-draw-delay (mixing-time) for storage tanks.
– 3-h fill-draw-delay for charge tanks.
– 1 flow-out at-a-time for the blend header.
– 1 flow-in at-a-time for the pipestill.
– 0-h downtime (continuous) for the pipestill.
19
Crude-Oil Blend Scheduling
Optimization (CBSO-IMF)
Crude-Oil Blend Scheduling
Optimization (CBSO-IMF)
20
Product Blend Scheduling
Optimization (PBSO-IMF)
21 Kelly, J.D., “Logistics: The Missing Link in Blend Scheduling Optimization”, Hydrocarbon Processing, June, 2006.
• Key logistics details …
– 1-norm (abs) flow-smoothing on blend header flow.
– 6 to 8-h uptime for blend header.
– 6 to 8-h uptime for blender-to-tank flows.
– 4-h fill-draw-delay (mixing-time) for product tanks.
– 1 flow-out at-a-time for the blend header.
– 0 holdup on switching-when-empty for multi-product
tanks.
22
Product Blend Scheduling
Optimization (PBSO-IMF)
Product Blend Scheduling
Optimization (PBSO-IMF)
23
Refinery Process Scheduling
Optimization (RPSO-IMF)
24
Pipeline
Coke Drums
Rail
CDU
VDU
DCU
Refinery Process Scheduling
Optimization (RPSO-IMF)
25
Refinery Process Scheduling
Optimization (RPSO-IMF)
26
Refinery Process Scheduling
Optimization (RPSO-IMF)
27
• Heterogeneous qualities i.e., volume-based flow
with weight-based property.
• Secondary/derived qualities i.e., ROAD =
(RON+MON) / 2, etc.
• Transformed/blend-index qualities i.e., RVPI =
RVP^1.25, etc. (pre/post-optimization)
• Conditioned/formula qualities i.e., Prop(Cond’s)
= a + b*Cond1^1.3 + c*LOG(Cond2) + …
• Extrinsic/assay qualities i.e., crude-oil
fractionation using “pooled” micro-cuts, etc. 28
Key Quality Details …
29
Key Quality Details … (cont’d) Properties-&sMacro,@sValue
E200,MIN(MAX(KIP(200:T05;5;T95;95);0);100)
E250,MIN(MAX(LIP(250:T05;5;T95;95);0);100)
E350,MIN(MAX(SIP(350:T05;5;T95;95);0);100)
FlashIndex,((1.8*Flash+491.7)/600)^(1/0.045)*10000
FlashInverse,(600*EXP(0.045*LN(Flash/10000))-491.7)/1.8
Properties-&sMacro,@sValue
&sCut,@rInitialPoint_Value,@rFinalPoint_Value
CH4,-161.524,-161.524
C2H5,-88.599,-88.599
C3H8,-42.101,-42.101
IC4H10,-11.729,-11.729
NC4H10,-0.501,-0.501
IC5H12,27.878,27.878
NC5H12,36.059,36.059
CUT40,36.059,45
CUT50,45,55
CUT60,55,65
CUT70,65,75
CUT80,75,85
CUT90,85,95
CUT100,95,105
…
&sCut,@rInitialPoint_Value,@rFinalPoint_Value
&sComponent,&sCut,&sProperty,@rProperty_Value
C1,CH4,S,0
,C2H5,S,0
,C3H8,S,0
,IC4H10,S,0
,NC4H10,S,0
,IC5H12,S,0
,NC5H12,S,0
,CUT40,S,1.97108E-05
,CUT50,S,8.99859E-05
,CUT60,S,0.000276981
,CUT70,S,0.000453468
,CUT80,S,0.000623969
,CUT90,S,0.000800151
,CUT100,S,0.000842744
…
&sComponent,&sCut,&sProperty,@rProperty_Value
&sCoefficient,@sType,@sPath_Name,@sLibrary_Name,@sFunction_Name,@iNumber_Conditions,@rPerturb_Size,@sCondition_Names
HOTH,dynamic,c:\IndustrialAlgorithms\PhysProp\Debug\,steam67_H,steam67_H,1,1e-6,HOTT
COLDH,dynamic,c:\IndustrialAlgorithms\PhysProp\Debug\,steam67_H,steam67_H,1,1e-6,COLDT
WARMH,dynamic,c:\IndustrialAlgorithms\PhysProp\Debug\,steam67_H,steam67_H,1,1e-6,WARMT
&sCoefficient,@sType,@sPath_Name,@sLibrary_Name,@sFunction_Name,@iNumber_Conditions,@rPerturb_Size,@sCondition_Names
• This is a “primal heuristic” which has been used
intuitively and naturally in industry for decades
to find “globally feasible” solutions.
• “Conjunction Values” are time-varying
parameters which “guide” each sub-problem
solution where “cuts” can also be added to
avoid known infeasible and/or inferior areas of
the search-space.
Key Solving Details …
Quality (NLP) Logistics (MILP)
Lower, Upper & Target Bounds on Yields
Lower & Upper Bounds on Setups & Startups
Conjunction Values
30
31
Key Solving Details … (cont’d)
• For NLP (quality) we have bindings to:
– CONOPT, IPOPT, KNITRO, XPRESS-SLP as well
as our “home-grown” SLPQPE.
– SLPQPE can use all previously mentioned LP’s as
its sub-solver. If the objective function has
quadratic terms then a QP is called at each major
iteration (for nonlinear control, data reconciliation &
parameter estimation problems).
• For MILP (logistics) we have bindings to:
– COINMP, GLPK, LPSOLVE, SCIP, CPLEX,
GUROBI, LINDO & XPRESS.
32
Our Development Directions
Ease of Use
Types of Problems
Improving Performance
Performance Issues
• Requirement to solve large-scale problems.
• Exploit continuous advancements in LP, QP
and MILP algorithms with parallelism.
• Efficient memory management.
• Include presolving before matrix is transferred.
• Support for various nonlinear global
optimization techniques to find better solutions.
• Allow for ad hoc/customized decomposition
strategies and “polylithic” modeling. 33
34
Key Conceptual Details …
• “Positioning” i.e., “fix/lock” any unit-operation
and/or stream setup and/or flow in any time-
period – similar to user or rule-based heuristics.
• “Partitioning” i.e., “divide/decompose” the
problem into several sub-problems either
hierarchically, structurally, temporally or
phenomenologically.
• “Planuling” i.e., “plan” faster unit-operations
and “schedule” slower unit-operations.
35
Key Conceptual Details … (cont’d)
• “Phasing” (product-wheel) i.e., force
“operation-to-operation” sequencing on a unit.
• “Pointing” i.e., add “extra” time-points to
increase the accuracy and articulation of the
solution.
• “Penalting” i.e., add “excursion” variables to
quantity, logic and quality variable bound
constraints to aid in the diagnosis of
infeasibilities and inconsistencies.
36
Advanced Performance
Management (APM)
• Employs Nonlinear and Dynamic Data
Reconciliation and Regression (NDDRR)
technology also known as “Error-in-Variables
Method” (EVM) & “Moving Horizon Estimation”
(MHE) with sensitivity information.
• APM includes:
– Advanced Production Accounting (APA),
– Advanced Property Tracking/Tracing (APT) and
– Advanced Process Monitoring (APM).
37
• More accurate and timely diagnostics of “bad”
instrument readings i.e., less type I and II
errors (false negatives and positives).
• More precise estimates of parameters or
unmeasured variables i.e., better vetting of
“unobservable” variables with loose
confidence-intervals spanning zero (0).
• Easier modeling, data integration and system
implementation allowing for more parts of the
plant to be monitored more frequently.
APM Benefits
38
APM Details • Structured flowsheet modeling i.e., variable
pointer = (position,property,period) tuple.
• Statistical diagnostic information:
– Validation i.e., Observability/Redundancy
– Variance i.e., Square of Standard-Deviation.
– Vetistic i.e., Maximum-Power/Student-t.
– Valuation i.e., 95% Confidence Intervals.
• System architecture SIIMPLE can be used in
both on & off-line environments embedded
into any computer programming language.
APM in Excel/VBA
39
40 40
Links to Other Systems (ODM
Enterprise and CPLEX)
Engines and Tools
CPLEX Optimization High-performance mathematical and constraint programming solvers, modeling language, and development environment
Solution Platform
ODM Enterprise Build and deploy analytical decision support applications based on optimization technology
Advanced
Planning & Scheduling
41
(OR)
(IT)
Embeds all CPLEX Optimization Studio
Reporting
Data Integration
Data Modeling
ODM Enterprise IDE
ODM Enterprise
Optimization Server/Engine
ODM Enterprise
Client & Planner
Optimization Modeling,
Tuning, Debugging
Application UI Configuration (LoB)
Development Deployment
Application UI Customization
Business Use
Custom GUI
Batch process
ODM Enterprise
Data Server
ODME System Architecture
42
ODME-IMPL-CPLEX Integration
• A domain-specific data model was created in
ODME using the usual master-data and
transactional-data partitions.
• A mapping between IMPL’s data model and
ODME’s data model was established.
• Java code was written to export IMPL’s IML file
(Industrial Modeling Language).
• SWIG Java was used to create a Java Native
Inerface (JNI) to IMPL.
43
ODME-IMPL-CPLEX Integration
(cont’d)
• Java code was written to call IMPL-CPLEX
using CPLEX’s API’s.
• Java code was written to access the solution(s)
from IMPL-CPLEX and the solution-data was
populated into ODME using IMPL’s IPL
(Industrial Programming Language).
44
Data-Model in ODME
45
Master-Data
46
Transactional-Data
47
Gantt Chart for Reference
48
Trend Plots for Reference
49
Scenario Data w/ Reference
50
Scenario Data w/ Reference
Implementation & Licensing
Options
• IMF – single application.
• IMF Library (IMFL) – multiple applications.
• IMPL – many diverse applications.
• Enterprise-Wide/Corporate Licensing.
• Third-Party Solver Licenses.
51
Servicing Options
• Customized IMF’s with Consulting.
• Training and Support.
• Application & Site-Specific Servicing.
52
Thank You!
53