Economic Dispatch of Combined Cycle Generators
Software Users’ Manual
Client:
MidAmerican Energy Company
Alan Oneal
ISU Senior Design Team:
May06-07
Noraima Fernandez
Robert Walter
Jeremy Hamilton
Matthew Ellis
Table of Contents
I.Overview of Instruction Manual......
II.Main Program Operating Instructions......
i.Applying the Appropriate Excel Add-Ins......
ii.Modifying the Generator Data txt File......
iii.Modifying Generator Constraints......
iv.Modifying Generation Requirement (Load)......
v.Generator Up/Down Times......
vi.The Unit Commitment Chart......
1.Unit Commitment Worksheet......
2.Check Unit Commitment Table Button......
3.Reset Unit Commitment to Default Button......
vii.Combined Cycle Data......
viii.Output Display Options......
1.Display Curve Characteristics?......
2.Display MU Lambda Tables?......
3.Display NMU Lambda Tables?......
4.Display All Possible Solutions?......
ix.Execute......
III.Secondary Program Operating Instructions......
i.Set Unit Commitment to Default......
ii.Dispatching a Range of Hours......
iii.User Data......
iv.Changed Data?......
v.Execute Secondary Program......
IV.Output Pages......
i.Quick Breakdown......
ii.Generator Output......
iii.Generator Cost......
iv.Fuel Use......
V.Adding or Deleting a Unit......
VI.Data Checks and Error Messages......
i.Input file loading......
ii.Commitment table......
iii.Generator min/max table......
iv.Load value table......
v.Secondary main......
I.Overview of Instruction Manual
The Non-Monotonically Increasing Generator Economic Dispatcher or NMIGED is a program that uses a series of user inputs via Microsoft Excel worksheets and text (.txt) files to economically dispatch both monotonically increasing and non-monotonically increasing generation units. Throughout the program itself the user will be directed through a pair of menus on how to modify the generator data and on how to finally execute the program. Each of these menus is structured so that first-time users should be able to walk themselves through a complete dispatch. The purpose of this instruction manual is to supply even greater detail than what is provided on the menus, provide a list of common problems and their solution, and finally to supply a list of NMIGED’s error messages.
NMIGED has two menus; the Main Menu and the Secondary Menu. Upon opening NMIGED the user will be on the Main Menu page. This menu will allow the user to run a complete 168 hour dispatch; it will also initialize many variables used in the secondary program. The Secondary Menu can only be used after the main program has been completely run. The main purpose of the secondary program is to study changes over a small range of hours. The Secondary Menu will allow the user to choose the range of hours that will be dispatched.
NMIGED is a Microsoft Excel based interface programmed with Visual Basic Macros made specifically for MidAmerican Energy Company. For optimal performance it should be run on a Windows based PC with adequate processing speed.
II.Main Program Operating Instructions
Upon opening NMIGED the first screen that one will come across is the Main Menu. The purpose of the Main Menu is to provide step-by-step instructions for setting up and running a complete 168 hour dispatch. The following steps are a more detailed version of what’s displayed on the Main Menu; however, while reading the Main Menu instructions it is recommended that the user follows along with the software.
i.Applying the Appropriate Excel Add-Ins
The first time that NMIGED is run on a computer a series of Excel Add-Ins are required and it may be necessary to change the security settings on one’s PC. One can see on the screen shot below that the user is first asked, “Is this the first time NMIGED has been run on this computer?”
If it is the first time, double click the Required Add-Ins icon. The following instructions are then displayed:
Getting Add-Ins before running the program
**Need to do this procedure the first time the program is run on any computer. If Solver and and Analysis Toolpaks are already checked, you still need to run through steps 1 through 6.
- Open the Excel file.
- Go to Tools, on the Menu bar, and click on Add-Ins…
- A menu box will pop-up. Place a check in the boxes for Analysis ToolPak, Analysis ToolPak – VBA, and Solver Add-in. Click on “OK” when done.
- Enter into the Visual Basic Editor. A quick way to do this is to press Alt + F8. A box will pop-up, see the figure below. Click on the “Edit” button.
- You will now be in the Visual Basic Editor. Under Tools, click on References…
- A menu box will be displayed. Place a check in the Solver box and click ok.
ii.Modifying the Generator Data txt File
NMIGED loads all the generator names, MW vs. IHR, and fuel costs from an external text (.txt) file. To build a new file it is recommended starting with the Default Generator Data .txt file which can be found by double-clicking the Default Generator Data icon (seen in the screen-shot below).
Instructions for modifying the .txt file can be found under the Gen Data Txt File Instructions icon. Double-clicking that icon displays the following:
The default text file looks like this below:
The excel test data looks like this:
To get the excel generator data into the text file used in the MNIGED program, the text file must be modified as follows:
To add a new generator to the text file (the file is most likely named “Project IHR unit data.txt”).
- Open the text file in a text editing program (default for Widows is Notepad, which will work fine.)
- Get the curve data for the new unit from the data source (most likely an excel sheet that looks like the following, with the new unit highlighted in yellow)
- Get the new unit data into the text file:
The cost is the fuel cost for the unit, in $/MBTU
The min PMBTU/HR is the I/O for the unit
The MW increments are the MW increments for the unit from the excel file containing the generator data
The MBTU/MWH is the IHR for the unit for the MW increment
All data should be under curve 1 in the text file.
Always make sure that the text file is ended with “END” at the bottom of it.
After all new unit data is entered into the text file, it should look like what is shown below:
iii.Modifying Generator Constraints
“Generator Constraints” refers to the maximum and minimum generation limits for each committed generator. By following the "Generator Constraints" hyperlink (seen in the screen-shot below), one will be directed to the constraints worksheet.
On the worksheet there is a cell for each generator’s name, and minimum and maximum MW limit for each of the 168 weekly hours. Upon arrival, the page will be set to the last situation executed or the default. All minimum and maximum MW limits must be positive integers. The following is a screen shot of the Constraints worksheet.
iv.Modifying Generation Requirement (Load)
The next field that must be modified is the generation requirement for each of the 168 hours. To get to the generation requirement page click the “Load Data” tab on the bottom of the menu. Upon arrival the load data will be set to the last case executed or default, as can be seen below in the load data screen shot.
It is required that a MW load (integer) is placed into each of the 168 cells. If a load cell is blank NMIGED will display an error when ran and will not completely dispatch.
v.Generator Up/Down Times
Up-time refers to the number of hours that it takes for a generation unit to start-up. A unit can not begin being committed until the number of up-time hours have passed. Down-time refers to the number of hours that it takes for a generation unit to shut-down. A unit can not be shut-down until the unit has been committed for the number of down-time hours. To input the up/down times click the “UpDown Times” tab on the bottom of the menu. Upon arrival the up/down times data will be set to the last case executed or default, as can be seen below in the up/down times screen shot.
It is required that an integer hour amount is placed into each of the “Min Up” and “Min Dn” cells for each unit. If a load cell is blank NMIGED will display an error when ran and will not completely dispatch.
vi.The Unit Commitment Chart
With the unit commitment chart there are a number of different user options. Each one of these options is explained in greater detail in the following section.
1.Unit Commitment Worksheet
The unit commitment worksheet is where the user can enter in the status code for each generator. To get to the unit commitment table click the “Unit Commitment” link.
Upon arrival the commitment chart will be set to the last pattern executed or the default.
On the top of the commitment chart there is a series of static data field that are meant to assist the user is picking a commitment pattern; they are as follows:
- Max Capability: The sum of all committed generator’s maximum generation limits
- Reserve: The generation requirement subtracted from the max capability
- Gen. Requirement: Load
- Foot Room: The min capability subtracted from the generation requirement
- Max Capability: The sum of all committed generator’s minimum generation limits
Below each of these fields is the actual commitment pattern were one can apply the appropriate status codes for each of the generators. Each unit must have a row dedicated to it. Acceptable status codes are as follows:
- 1: Online
- 0 or left blank: Offline
- -1: Out of Service
2.Check Unit Commitment Table Button
To check whether the up/down times are violated click the “Check Unit Commitment Table” button on either the Main Menu or Commitment worksheet (far right). Clicking this button will run an independent macro. If there is an up/down times violation for a unit column FN will display a “Yes” highlighted in red. If the unit does not violate the up/down times it will simply say “No.” This can be seen in the screen-shot below.
3.Reset Unit Commitment to Default Button
If at any time the user wants to the unit commitment pattern used by NMIGED to return to the default commitment pattern, simply click the “Reset Unit Commitment to Default” button located on both the Main Menu and the Commitment worksheet. Clicking this button will run an independent macro which takes the values on the “DefaultCommitment” worksheet and places them on the Commitment worksheet. The “DefaultCommitment” worksheet can either be changed manually using the same instructions as section II part iv-1 or by allowing NMIGED to set it, covered later in section III part i.
vii.Combined Cycle Data
By following the "Combined Cycle Data" hyperlink, one reaches the worksheet to adjust the MW output relation between the CTs and HRSG. Under the CT heading, input the MW contribution (integer) of only one CT. In the HRSG column, input the total HRSG contribution.
→Example: The total combined cycle output is 190 MW. Each CT contributes 60 MW and the HRSG outputs 70 MW. Under the CT heading you would enter 60 and under the HRSG heading you would enter 70. For NMIGED to run properly there must be eight data points entered in ascending order, lowest values on top and highest values on bottom. Every combined-cycle unit must have its own set of data.
viii.Output Display Options
NMIGED by default displays the Generator Outputs, Generator Costs, and Fuel Use; however one can also display a series of extra tables by selecting TRUE in the drop down lists next to each option. Not displaying a page will create fewer tabs to sort through.
1.Display Curve Characteristics?
Curve Characteristics refer to the A, B, and C characteristics that are calculated for each unit.
2.Display MU Lambda Tables?
MU Lambda Tables refer to the calculated lambda values for each monotonically increasing unit. Lambda values will be displayed in one MW increments and will be displayed on the worksheet labeled MU lambda tables.
3.Display NMU Lambda Tables?
NMU Lambda Tables refer to the calculated lambda values for each non-monotonically increasing unit. Lambda values will be displayed in one MW increments and will be displayed on the worksheet labeled MU lambda tables.
4.Display All Possible Solutions?
All possible solutions will display every power and cost combinations for a designated hour. The user will be prompted for the hour when the program executes.
ix.Execute
Once all of the user defined fields are entered one can run the program to dispatch all 168 hours by clicking the “Execute” button. Clicking the Execute button will run the main program macro.
III.Secondary Program Operating Instructions
The Secondary Menu can only be used after completely running the Main Program (168 hour dispatch). The purpose of the Secondary Menu is to allow the user to choose a range of hours to concentrate their study on. Dispatches through the Secondary Menu take considerably less time than through the Main Menu. The following steps are a more detailed version of what’s displayed on the Secondary Menu; however, while reading the Secondary Menu instructions it is recommended that the user follows along with the software.
i.Set Unit Commitment to Default
After the main program has been run the first option that the user has is to save the unit commitment pattern that was used in the last execution as the default. This can be done by clicking the button labeled “Save Unit Commitment to Default” (seen in the screen-shot below).
By clicking the “Save Unit Commitment to Default” button it will replace the pattern on the “Default Commitment” worksheet with the commitment pattern stored in an array (read off the “Commitment” worksheet). Any time the user resets the unit commitment to default (section II part iv-3) the “Commitment” worksheet will change to this pattern.
ii.Dispatching a Range of Hours
The main function of the secondary menu is to dispatch a range of hours. In Step 2 of the Secondary Menu the user is prompted for a start hour and an end hour. Use the pair of scroll down lists to select the range to be dispatched. This range of hours will be highlighted in blue on the output pages. Note: The starting hour must be less than the ending hour.
In the above situation only hour four will be dispatched.
iii.User Data
User data refers to all the user defined fields described in Section II part ii through part viii of this manual. All of these fields can be modified in the same manner as the reference sections.
iv.Changed Data?
To save loading time the secondary program only reads in a user-defined data field if the user specifies that it has changed since the last execution. This is done through a series of scroll down menus. If the data field has changed, the user should change the box to “TRUE,” if unchanged leave it “FALSE.” The following are the possibly changed data fields:
- Generator Data .txt File
- Generator Constraints Worksheet
- Unit Commitment Worksheet
- Combined Cycle Data
- Generation Requirement
v.Execute Secondary Program
Once all of the user defined fields are entered one can run the secondary program which dispatches the range of hours designated in part ii of this section by clicking the “Execute Secondary NMIGED” button. Clicking the execute button will run the secondary program macro.
IV.Output Pages
To display the results of each dispatch NMIGED uses a series of output pages. The following are instructions for how to read each of the output pages.
i.Quick Breakdown
The quick breakdown displays the hourly breakdown for total power (MW), total cost ($), and the total amount of generation produced by non-monotonically increasing generators (MW). The main purpose of this sheet is to display a quick summary of each hour’s cost and generation. If the Secondary Menu was used, the user defined range of hours will be highlighted in blue, as can be seen below in the screen-shot.
ii.Generator Output
The Generator Output page displays the hourly MW output for each generation unit. The total generation (MW) for each hour is displayed across the bottom of the worksheet. The total generation (MW) for each unit is displayed on the far right. The top-most row displays the total cost ($) for each hour. The next row, lambda value, refers to the cost to produce the next additional MW-hour. Max. Capability, Reserve, Load, Foot Room, and Min. Capability are all described in Section II part iv-1. If the Secondary Menu was used, the user defined range of hours will be highlighted in blue. A screen-shot of the Generator Output page can be seen in the screen-shot below.