Crude Column Optimization Aspen Hysys
Short Description
Descripción: Crude Column Optimization Aspen Hysys...
Description
Crude Column Optimization
1
Crude Column Optimization
1 © 2004 AspenTech. All Rights Reserved. 1.3 Crude Column Optimization.pdf
2
Crude Column Optimization
Workshop A crude column with pump arounds and side-strippers can converge in a few seconds using a wide variety of product quality specifications. However, the complexity of the model and intrinsic interaction between variables can make it very difficult to use the model alone as a decisionmaking tool. For example, in a typical oil refinery, the operation must be adjusted so that different feed stocks can be processed to yield products with tight quality specifications, while meeting a desired economic performance. How does one use the model to choose the best operating conditions? HYSYS includes additional modelling and decision support tools that can be used to enhance the usability of your models. In this module, you will use the HYSYS optimization tool available in HYSYS.RTO to investigate the debottlenecking and optimization of a crude column.
Learning Objectives After completing this module, you will be able to use the Derivative Utility to: • • •
Define Process Constraints and Variables. Define the Objective Function. Run the Optimizer and check the results.
Prerequisites Before beginning this module you will need to know how to: • •
2
Create and modify active specifications in the column. Create utilities and select variables through the HYSYS Object browser.
Process Overview
4
Crude Column Optimization
Description of the Problem In the Atmospheric Crude Column module we defined and converged the tower based on a predetermined set of performance criteria. The profit of this column operation is dependent on the price of its various products and on its operation costs (e.g., energy and steam). It should be possible to operate the column with better performance: maximizing the profit from the column while keeping the product quality constraints within specified limits. However, the number of variables to manipulate and the number of constraints to be met makes the optimization problem impossible to do manually. Consequently, the help of an optimization algorithm is needed. Let us examine the variables involved: Price
Revenue
3
Revenues
($/m )
Naphtha
14.00
2100
Kerosene
12.00
743
Diesel
10.00
1300
AGO
6.00
180
Residue
2.00
580
Costs
($/h)
($/MM kJ)
Condenser
0.12
15
Flash zone duty
3.00
287
Profits (approximately)
4600
From the cost and revenues table above, we can determine that it would be most desirable to get the maximum quantity of Naphtha possible, since it is the highest value product, and of course, concurrently minimise the energy consumption. This is not a simple task because the market requires that product quality standards be taken into account. The following table shows these standards: Product Naphtha
4
Specification type D86 / 5%
Minimum (°C) 40.00
Maximum (°C) 50.00
Naphtha
D86 / 95%
160.00
180.00
Kerosene
D86 / 5%
170.00
190.00
Kerosene
D86 / 95%
240.00
260.00
Diesel
Pour point
-15.00
5.00
Crude Column Optimization
Diesel
Flash point
90.00
110.00
AGO
Pour point
0.00
20.00
AGO
Flash point
130.00
150.00
5
What will happen to the Naphtha product's distillation curve if we extract a very high quantity of this product?
More components from the heavier Kerosene range will go to the Naphtha extraction and consequently the distillation curve (i.e., D86 95% will be higher and thus will overpass the maximum value needed to meet quality requirements).
Expanding the Flowsheet 1.
Load the simulation case from the Atmospheric Crude Column module. You can use the case you created, or load pre-made case Crude6.hsc from your Solution Cases folder.
In this module, we will optimize the performance of the atmospheric crude column based on the product quality specifications.
Changing the Units As you know, HYSYS allows you to create your own set of units. If a desired unit can not be selected from the database, we can define our own unit by specifying an appropriate conversion factor. In this case, the prices for the Energy values are given in MMKJ/h and, since this unit is not available in the HYSYS unit library, we will need to define it.
If the Refinery unit set is missing, use a clone of the SI unit set.
1.
From the Tools menu, select Preferences.
2.
Go to the Variables tab and select the Units page.
3.
Select the Refinery package that we defined in the Oil Characterization module.
4.
Move the cursor to the Energy cell and click on the Add button.
5
6
Crude Column Optimization
5.
Complete the view as shown below. Figure 1
Building the Simulation Column Product Specs In this case, we will converge the column using simple specifications (e.g., flowrates and duties) since the optimizer will need to run the column many times (and simple specifications enhance convergence). We will make sure Cut Point quality specifications are selected as estimates but are not active.
6
1.
Open the Column Property View.
2.
Change the Temperature of the feed to 320°C.
3.
Click the Design tab and click the Monitor page.
Crude Column Optimization
4.
7
Enter the Kerosene flowrate as 62 m3/h. The specifications on your Monitor page should appear as shown: Figure 2
The Column property view should display a “Converged” status.
Save your case!
7
8
Crude Column Optimization
Derivative Utility The Derivative Utility is used to hold all the data used for defining the HYSYS Optimizer variables, constraints, and the Objective Function. The first step in setting up an optimization problem is creating a Derivative Utility. The Derivative Utility is responsible for gathering all necessary information for the optimizer. Notice that several different Derivative Utilities can be added to the same simulation, that is, the same simulation model can be used in the analysis of several different scenarios. To install a Derivative Utility: 1.
From the Tools menu, select Utilities.
2.
Click Derivative Utility in the list box on the right.
3.
Click on the Add Utility button. The Derivative Utility property view appears as shown: Figure 3
8
Crude Column Optimization
9
Selection of Unit Operation(s) The first step in the implementation of the Derivative Utility is the selection of the unit operations to be considered. 4.
Click the Operation button.
We will use only the distillation column as the desired unit operation. Using this mode will optimize variables pertaining to the Atmospheric Crude Tower unit operation. 5.
Add the Atmos Tower to the Scope Objects list as shown: Figure 4
6.
Click Accept List.
Installing Optimization Variables from the Utility The next step is to define the variables that we would like to optimize in our case. The Optimization variables will be product flowrates, steam flowrates, and energy values. The needed optimization objects for the utility (in the case of the Derivative Utility: Optimization Variables, Constraints, and Objective Function variables) can be added directly from this view. In the Derivative Utility Configuration group, there is a drop-down list on the right side of the group.
9
10
Crude Column Optimization
The drop-down list contains three options: • • • •
State Variables are on/off variables which are not being used in this case.
Process Constraints: ProcCons Optimization Variables: OptVars Objective Function: ObjFunc State Variables: StateVars
Figure 5
7.
Select OptVars and click the Add button to the left of the drop-down list. The selection view is displayed: Figure 6
8.
10
By making the selection as shown, an Optimization Variable is created (Bttm Steam Mass Flow) and is added into the utility. By default, the new object is given the next available name. However, you can edit the name of the object directly from the utility view by highlighting the name in the Object Name column and typing a new string.
Crude Column Optimization
11
Figure 7
The Object Name column lets you modify the name of the created variables. In addition, the Attached Object and attached Property columns are also displayed in the view, as well as the variable's current value. The Master and Runtime radio buttons toggle the display between all objects and those being considered for the current evaluation. The properties can be filtered into the following: • • • •
All. All properties. Input. Properties requiring user input. Output Calculated and outputted values. Results. Solution results.
Required Input for Variables The input for optimization variables are:
From the list of variables, if you uncheck the “Optimize flag” check box for certain variables, the Master list will still show you all the variables (selected and nonselected) whereas the Runtime list shows only the selected ones.
• • • • • •
Optimize flag Minimum Maximum Range (optional) Global Minimum Global Maximum
The Global inputs are appropriate only for real time applications and can be set at the same values as the minimum and maximum. The Optimize flag works in conjunction with Runtime and Master lists. When the optimization problem is being set up, this flag is evaluated for
11
12
Crude Column Optimization
each variable. If the flag is false, then the variable is not exposed to the Optimizer and the value remains at its starting value for the length of the solution. With this, you can easily switch between optimization problems by turning variables and constraints on and off. The value for the variable Range is used in the calculation of a perturbation (= range x perturbation factor). If none is provided, the span (maximum minimum) is used for the calculations.
Adding Variables We need to add all of the optimization variables in the same way. Notice that only those variables shown as blue in the simulation (input values) can be selected since they must be available for updating during the optimization. In this example, those variables that are specified as Active specs in the column will need to be accessed through this derivative utility. 9.
Click the Add button with the OptVars option selected in the dropdown list.
10. Add the steam flowrates. Since the specified value (blue) in this case is in the stream itself, you will be able to access it through this object directly as you did with the Bttm Stream Flowrate. Figure 8
This displays how to access a column Active specification through the Object ANavigator.
12
Crude Column Optimization
13
11. Repeat the steps in order to complete the list of Optimization variables as follows: Figure 9
Make sure that all values from the Current Value column are in blue, since they’ll be changed later by the optimizer. 12. Select the Input view from the Variables tree on the left. 13. Complete the minimum and maximum values for each of the variables. Minimum and maximum values are the boundaries for the variables in the optimization; this is the valid range for the optimization.
Minimum
Maximum Flowrates Steam (kg/h)
700
AGO Steam Flow
1600
2000
Bttm Steam Flowrate
4800
800
Diesel Steam Flow
1900
0
Off Gas Flowrate (kgmole/h)
110
Naphtha Flowrate (m3/h)
190
46
Kero Flowrate (m3/h)
80
104
Diesel Flowrate (m3/h)
156
20
AGO Flowrate (m3/h)
40
Flowrates Products 10
13
14
Crude Column Optimization
Minimum
Maximum Energy (MMKJ/h)
-33
Kero PA Duty
-60
-25
Diesel PA Duty
-50
AGO PA Duty
-50
-25
Pump Around Draw Rates (m3/h) 240
Kero PA Flowrate
400
150
Diesel PA Flowrate
250
150
AGO PA Flowrate
250
Additional Specs 6
Kero Reb Duty (MMKJ/h)
10
17
Liq Flow Stg 27 (m3/h)
30
Save your case! HYSYS SQP Optimizer is able to solve constrained optimization problems. In the presented case, we want the product quality to remain inside certain values. We can set this need as constraints in an optimization problem.
Required Input for Constraints The required inputs for constraints are as follows: • • • •
Use flag Minimum Maximum Scale
All constraints are treated by the Optimizer as ranged constraints (i.e., the value of the constraint should lie between the minimum and maximum at solution, within the prescribed Scale tolerance). The scale can be considered as an approach, or as the boundary around the minimum and maximum values that defines whether the constraint is active, or violated. This information is reported during and after the solution as the status of the constraint.
14
Crude Column Optimization
15
14. Click on the Add button with the ProcCons option activated in the drop-down list as shown: Figure 10
We could add the distillation points from the Boiling point Curves utility, but that would take more time than if we took the values from the Column’s Monitor page (they will save calculation time). Use a descriptive name as this will make it easier to find with the Object Navigator.
15. Add the required Distillation Points on the Monitor page of the Column Property view if they are not already there. Figure 11
The products must meet the following quality specifications: Product
Specification type
Minimum (°C)
Maximum (°C)
Naphtha
D86 / 5%
40.00
50.00
Naphtha
D86 / 95%
160.00
180.00
Kerosene
D86 / 5%
170.00
190.00
Kerosene
D86 / 95%
240.00
260.00
Diesel
Pour point
-15.00
5.00
Diesel
Flash point
90.00
110.00
AGO
Pour point
0.00
20.00
AGO
Flash point
130.00
150.00
15
16
Crude Column Optimization
16. Repeat the steps in order to complete the whole list of Constraint variables as displayed in the previous table. 17. For the heavy streams, we will include Flash Point and Pour Point specifications by selecting them from the column. 18. Go to the Monitor page. 19. Click the Add Spec button. We can also view these properties with the corresponding utility but it will be better to gather all the information within the Monitor page.
20. Click the Add Spec button again and select Cold Properties. Figure 12
21. Remember to take into account the equipment limitation constraints. Equipment
16
Min Duty (MM kJ/h)
Max Duty (MM kJ/h)
Condenser
105.00
125.00
Flash Zone
70.00
90.00
Crude Column Optimization
17
22. Add two new process constraints for the Energy streams (you can select these directly from the stream). Figure 13
If any current value exceeds the boundaries, the optimizer will put it within the limits.
Your view should appear as shown: Figure 14
17
18
Crude Column Optimization
Is there any constraint variable currently beyond the specified Minimum and Maximum boundaries? _________________________________________
Objective Function Variables Objective Function variables are installed individually which facilitates the calculation of the gradient during the course of Jacobian evaluations. Alternatively, an Objective Function can be built in a spreadsheet operation, with a single cell representing the results, and having a single Objective Function object attached to this result cell. All the variables with a cost associated may be listed into the Constraints/Objective Function tab. The HYSYS SQP optimizer will only minimize the Objective Function. For this reason the revenues have to be expressed as negative, and the cost values positive. Thus, every single variable will have, as a result, its current value multiplied by the associated cost/revenue. The Jacobian will minimize the individual values that will end in a total minimum (the sum of all the values from the list). Price 3
Revenues ($/m ) Naphtha
14.00
Kerosene
12.00
Diesel
10.00
AGO
6.00
Residue
2.00
Costs ($/MM kJ) Condenser
0.12
Flash zone duty
3.00
Profits
18
Crude Column Optimization
19
23. To add Objective Function variables, click on the Add button with the ObjFunc option selected. Figure 15
24. For this problem, individual objective function objects are installed as shown below. Select the Naphtha product Volume Flowrate (because the price is in $/m3). Figure 16
19
20
Crude Column Optimization
Figure 17
Which would be the formula of the global Objective Function?
Naphtha flowrate * price Naphtha + Kero flowrate * price Kero + Diesel flowrate * price Diesel + AGO flowrate * price AGO + Residue flowrate * price Residue - Condenser Heat Flow * cost Energy Condenser - Flash Zone Heat Flow * cost Energy And its value? ________________________________
Save your case!
20
Crude Column Optimization
21
Optimizer The Optimizer interface is used to collect all of the derivative utilities within the current simulation case and provide them to the optimization algorithm. The Optimizer is invoked by pressing F5 or by opening the Simulation menu and selecting Optimizer. Remember that we can use several utilities in the same case. 1.
On the Configuration tab, select Hyprotech SQP as the optimization algorithm.
2.
After all the information is configured (leave the defaults), the model can be run. Click the Hyprotech SQP tab and click the Start button to run the Optimizer. Figure 18
To examine the results on the variables and constraints, open the appropriate Derivative Utility and view the Results page.
21
22
Crude Column Optimization
Examining the Results Go to the Optimizer Property View (press F5). Did the model find a solution? ________________________________________ What is the Objective Function value? __________________________________ Have we improved it? ________________________________________________
Go to the Derivative Utility and select the Results option, in the Constraints/Objective Function tab. Was any constraint violated? _________________________________________ And active? _________________________________________________________
An active constraint means the variable is in one of its boundaries.
Exploring the Simulation Since Naphtha is the more valuable product, increasing the flowrate should also increase the profit. We can do so by relaxing the constraints, however, we are constrained to the quality specifications. Change the D86 95% Temperature value to 185°C. What is the new Objective Function? ___________________________________ What are the active specifications? _____________________________________ Did the profit increase after these changes were made? ___________________
22
View more...
Comments