+ All Categories
Home > Technology > Intro Industrial Algorithms

Intro Industrial Algorithms

Date post: 06-May-2015
Category:
Upload: alkis-vazacopoulos
View: 400 times
Download: 3 times
Share this document with a friend
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.
53
Using IMPL for Advanced Planning & Scheduling (APS) Solutions January 2014 Industrial Algorithms LLC. 1/27/2014 Copyright, Industrial Algorithms LLC.
Transcript
Page 1: Intro Industrial Algorithms

Using IMPL for Advanced

Planning & Scheduling (APS)

Solutions

January 2014

Industrial Algorithms LLC.

1/27/2014 Copyright, Industrial Algorithms LLC.

Page 2: Intro Industrial Algorithms

Agenda

• IAL Introduction

• What is IMPL?

• Advanced Planning & Scheduling (APS)

• APS IMPL Examples

• APM IMPL Demonstration

• Links to Other Systems (IBM’s ODME)

2

Page 3: Intro Industrial Algorithms

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

Page 4: Intro Industrial Algorithms

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

Page 5: Intro Industrial Algorithms

5

Our Development Directions

Improving Performance

Ease of Use

Types of Problems

Page 6: Intro Industrial Algorithms

6

Our Development Directions

Ease of Use

Types of Problems

Improving Performance

Page 7: Intro Industrial Algorithms

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

Page 8: Intro Industrial Algorithms

• 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

Page 9: Intro Industrial Algorithms

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

Page 10: Intro Industrial Algorithms

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)

Page 11: Intro Industrial Algorithms

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

Page 12: Intro Industrial Algorithms

• 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 *

Page 13: Intro Industrial Algorithms

• 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

Page 14: Intro Industrial Algorithms

14

Our Development Directions

Ease of Use

Types of Problems

Improving Performance

Page 15: Intro Industrial Algorithms

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).

Page 16: Intro Industrial Algorithms

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.

Page 17: Intro Industrial Algorithms

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

Page 18: Intro Industrial Algorithms

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.

Page 19: Intro Industrial Algorithms

• 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)

Page 20: Intro Industrial Algorithms

Crude-Oil Blend Scheduling

Optimization (CBSO-IMF)

20

Page 21: Intro Industrial Algorithms

Product Blend Scheduling

Optimization (PBSO-IMF)

21 Kelly, J.D., “Logistics: The Missing Link in Blend Scheduling Optimization”, Hydrocarbon Processing, June, 2006.

Page 22: Intro Industrial Algorithms

• 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)

Page 23: Intro Industrial Algorithms

Product Blend Scheduling

Optimization (PBSO-IMF)

23

Page 24: Intro Industrial Algorithms

Refinery Process Scheduling

Optimization (RPSO-IMF)

24

Pipeline

Coke Drums

Rail

CDU

VDU

DCU

Page 25: Intro Industrial Algorithms

Refinery Process Scheduling

Optimization (RPSO-IMF)

25

Page 26: Intro Industrial Algorithms

Refinery Process Scheduling

Optimization (RPSO-IMF)

26

Page 27: Intro Industrial Algorithms

Refinery Process Scheduling

Optimization (RPSO-IMF)

27

Page 28: Intro Industrial Algorithms

• 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 …

Page 29: Intro Industrial Algorithms

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

Page 30: Intro Industrial Algorithms

• 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

Page 31: Intro Industrial Algorithms

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.

Page 32: Intro Industrial Algorithms

32

Our Development Directions

Ease of Use

Types of Problems

Improving Performance

Page 33: Intro Industrial Algorithms

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

Page 34: Intro Industrial Algorithms

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.

Page 35: Intro Industrial Algorithms

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.

Page 36: Intro Industrial Algorithms

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).

Page 37: Intro Industrial Algorithms

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

Page 38: Intro Industrial Algorithms

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.

Page 39: Intro Industrial Algorithms

APM in Excel/VBA

39

Page 40: Intro Industrial Algorithms

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

Page 41: Intro Industrial Algorithms

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

Page 42: Intro Industrial Algorithms

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.

Page 43: Intro Industrial Algorithms

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).

Page 44: Intro Industrial Algorithms

44

Data-Model in ODME

Page 45: Intro Industrial Algorithms

45

Master-Data

Page 46: Intro Industrial Algorithms

46

Transactional-Data

Page 47: Intro Industrial Algorithms

47

Gantt Chart for Reference

Page 48: Intro Industrial Algorithms

48

Trend Plots for Reference

Page 49: Intro Industrial Algorithms

49

Scenario Data w/ Reference

Page 50: Intro Industrial Algorithms

50

Scenario Data w/ Reference

Page 51: Intro Industrial Algorithms

Implementation & Licensing

Options

• IMF – single application.

• IMF Library (IMFL) – multiple applications.

• IMPL – many diverse applications.

• Enterprise-Wide/Corporate Licensing.

• Third-Party Solver Licenses.

51

Page 52: Intro Industrial Algorithms

Servicing Options

• Customized IMF’s with Consulting.

• Training and Support.

• Application & Site-Specific Servicing.

52

Page 53: Intro Industrial Algorithms

Thank You!

53


Recommended