Using IMPL for Advanced Planning & Scheduling (APS) Solutions
Upcoming SlideShare
Loading in...5

Using IMPL for Advanced Planning & Scheduling (APS) Solutions






Total Views
Views on SlideShare
Embed Views



0 Embeds 0

No embeds



Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

Using IMPL for Advanced Planning & Scheduling (APS) Solutions Using IMPL for Advanced Planning & Scheduling (APS) Solutions Presentation Transcript

  • Using IMPL for Advanced Planning & Scheduling (APS) Solutions Industrial Algorithms LLC. Copyright, Industrial Algorithms LLC. 10/17/2013
  • 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
  • Our Development Directions Ease of Use Types of Problems Improving Performance 5
  • Our Development Directions Ease of Use Types of Problems Improving Performance 6
  • 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, demandchain and/or value-chain optimization problem. • IMPL is suitable for: – Advanced Planning & Scheduling (APS), – Advanced Production/Process Optimization (APPO) and 7 – Advanced Performance Management (APM).
  • How do we configure/code problems? • 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 8 Phenomena (QLQP) including Time.
  • How do we configure/code problems? (cont’d) IML Frames (Sheets) in CSV Format !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! 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 9
  • How do we configure/code problems? (cont’d) 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) 10
  • 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 Dimensional-Processes – Geometry Transforms (Reels, Rolls, Sheets, Ingots, Logs, etc.) Parcels – Moveable/Transportable Inventory or Holdup with Round-Trip Travel-Time Pipelines – Moveable/Transportable Inventory as FIFO (First-In-First-Out) Pilelines – Stackable Inventory as LIFO (Last-In-First-Out) Port-In – Flows into a Unit (similar to a nozzle). Port-Out – Flows out of a Unit 11
  • How do we formulate the variables and constraints? • 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: * Similar to Cires, Hooker & Yunes (July 2013)’s Meta-Constraints & Semantic Typing * – Setups, startups, switchovers, shutdowns and sequencedependent switchovers, etc. – Quality details include: – Densities, components, properties, conditions and coefficients i.e., catalyst activity, enthalpy, etc. 12
  • What is our system architecture? • 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 domainspecific whereas the Server, Presolver and Executable are not i.e., they are domain-inspecific or generic for any type of optimization problem. 13
  • Our Development Directions Ease of Use Types of Problems Improving Performance 14
  • 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). 15
  • 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. 16
  • 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 17 optimization.
  • Crude-Oil Blend Scheduling Optimization (CBSO-IMF) Kelly, J.D., Mann, J.L., “Crude-Oil Blend Scheduling Optimization: An Application with Multi-Million Dollar Benefits”, Hydrocarbon Processing, June/July, 2003. 18
  • Crude-Oil Blend Scheduling Optimization (CBSO-IMF) • 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) 20
  • Product Blend Scheduling Optimization (PBSO-IMF) Kelly, J.D., “Logistics: The Missing Link in Blend Scheduling Optimization”, Hydrocarbon Processing, June, 2006. 21
  • Product Blend Scheduling Optimization (PBSO-IMF) • 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) 23
  • Refinery Process Scheduling Optimization (RPSO-IMF) Pipeline CDU VDU Rail DCU Coke Drums 24
  • Refinery Process Scheduling Optimization (RPSO-IMF) 25
  • Refinery Process Scheduling Optimization (RPSO-IMF) 26
  • Refinery Process Scheduling Optimization (RPSO-IMF) 27
  • Key Quality Details … • 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 28 fractionation using “pooled” micro-cuts, etc.
  • 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:IndustrialAlgorithmsPhysPropDebug,steam67_H,steam67_H,1,1e-6,HOTT COLDH,dynamic,c:IndustrialAlgorithmsPhysPropDebug,steam67_H,steam67_H,1,1e-6,COLDT WARMH,dynamic,c:IndustrialAlgorithmsPhysPropDebug,steam67_H,steam67_H,1,1e-6,WARMT 29 &sCoefficient,@sType,@sPath_Name,@sLibrary_Name,@sFunction_Name,@iNumber_Conditions,@rPerturb_Size,@sCondition_Names
  • Key Solving Details … Lower, Upper & Target Bounds on Yields Quality (NLP) Conjunction Values Logistics (MILP) Lower & Upper Bounds on Setups & Startups • 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 30 the search-space.
  • 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. 31
  • Our Development Directions Ease of Use Types of Problems Improving Performance 32
  • 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
  • Key Conceptual Details … • “Positioning” i.e., “fix/lock” any unit-operation and/or stream setup and/or flow in any timeperiod – 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. 34
  • 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. 35
  • 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). 36
  • APM Benefits • 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. 37
  • 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. 38
  • APM in Excel/VBA 39
  • Links to Other Systems (ODM Enterprise and CPLEX) Advanced Planning & Scheduling Solution Platform ODM Enterprise Build and deploy analytical decision support applications based on optimization technology Engines and Tools CPLEX Optimization High-performance mathematical and constraint programming solvers, modeling language, and development environment 40
  • ODME System Architecture ODM Enterprise Optimization Server/Engine ODM Enterprise IDE ODM Enterprise Client & Planner Reporting Data Integration Application UI Customization (IT) (LoB) Application UI Configuration Data Modeling Custom GUI ODM Enterprise Data Server Optimization Modeling, Tuning, Debugging Batch process (OR) Embeds all CPLEX Optimization Studio Development Deployment Business Use 41
  • 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. 42
  • 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). 43
  • Data-Model in ODME 44
  • Master-Data 45
  • Transactional-Data 46
  • Gantt Chart for Reference 47
  • Trend Plots for Reference 48
  • Scenario Data w/ Reference 49
  • Scenario Data w/ Reference 50
  • 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