Oil refineries are quite likely the most complex factories for which I have ever developed constraint-based scheduling tools. They often consist of over 50 distinct processing units, each specialized for a particular task in converting crude oil into gasoline, kerosene and a multitude of other petro-chemical products.
The FORWARD system was developed as a scheduling tool for large refineries by the French engineering company TECHNIP together with COSYTEC, using the CHIP constraint programming platform and a non-linear simulation and optimization tool developed by ELF. The picture below shows the Google Earth map of the FINA refinery in Antwerp, the pilot site for this application in 1993.
The scheduling tool sits between two other major optimization applications, looking at the refinery at different levels of granularity:
- An LP model is used to optimize the overall production aims for the refinery throughout a month. It considers how much gasoline, kerosene and fuel oil should be produced given current (projected) prices, based on the available crude oil sources and their cost. This is the financial side of the business, concerned with buying and selling crude oil and finished products on the spot market.
- At the other end of the scale, the actual operations of all units, including detailed valve and pumping operations, are controlled from the operations center in the factory through a multitude of control and measurement systems, each specialized for particular pieces of equipment. The decisions taken here are at the minute-to-minute level.
The FORWARD scheduling system provides the interface between these two systems, converting monthly targets into detailed schedules on where to store and how to process incoming crude oil, and when to switch operating modes of the refinery. There are three main optimization modules:
- Pipeline operations
- Crude oil blend optimization
- Finished product blend optimization
together with the detailed simulation models of all units which predict how the units will operate under specific set points.
Today, I’ll briefly describe the crude oil blend optimization problem, I’ll discuss the other problems in later posts.
The first major processing unit in a refinery is the atmospheric distillation unit (shown below), which splits incoming crude oil into fractions based on their boiling point. The unit is engineered to achieve maximal throughput when all draws for intermediate products on the right run at their design capacity.
This will only happen if the crude oil fed into the unit has the right composition. For an oil refinery close to a large oil field this is not an issue, the unit will be designed to run optimally on the crude from that field. For a refinery which gets crude oil from multiple sources with very different compositions, this poses a serious problem. The design of the unit is fixed. If the wrong crude oil in fed into the unit, throughput is decreased significantly, while costs stay the same, and the refinery loses money.
We can overcome this problem by blending different crude oils together to improve the throughput. If one crude is limited by the gasoline fraction, and another by the diesel fraction, then a correct mix of both can achieve higher throughput than running the crudes separately through the unit. The mixing can be done directly in the feed, pumping from two different tanks to combine in the unit. This poses an on-line control problem, where the correct ratio must be constantly monitored and corrected. Alternatively, we can mix different crudes in the intermediate storage tanks at the refinery, but this requires advance planning. After every movement, the tank needs hours of settling time to obtain proper mixture, but also to separate any water contamination. But the need for on-line analysis is reduced, allowing a more stable operation.
As crude oils of different composition arrive at the refinery, we must build a schedule of the mixing operations, to achieve the highest maintained throughput of the distillation unit. Since crude storage is limited, we can also not allow arbitrarily complex mixing operations. Ideally, we want to combine two or perhaps three crudes in the right proportion.
The scheduling heavily relies on (quite simple) LP sub problems used as input to the finite domain scheduling decisions. This was easy as CHIP contained its own rational LP Solver, which was sufficient for the problems encountered.
To learn more
The FORWARD system is described as one of three case studies in Helmut Simonis: Building Industrial Applications with Constraint Programming. CCL 1999: 271-309. The system was installed in a number of refineries around the world, including France, the UK, Italy, South Korea and Japan. The initial Prolog-based user interface was eventually replaced with custom-developed C code, leading to the FORWARD-C system, which is still active on the Technip website.