Using IMPL for Advanced Planning & Scheduling (APS) Solutions
Post on 06-May-2015
346 Views
Preview:
Transcript
Using IMPL for Advanced
Planning & Scheduling (APS)
Solutions
Industrial Algorithms LLC.
10/17/2013 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.
• Blend-index/transformed qualities i.e., RVPI =
RVP^1.25, etc. (pre/post-optimization)
• Formula/conditioned qualities i.e., Prop(Cond’s)
= a + b*Cond1^1.3 + c*LOG(Cond2) + …
• Assay/extrinsic 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
top related