1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
|
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Chapter 24: UNIT COMMITMENT"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Example 24.3: Priority_List_Method.sce"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"// Priority List Method \n",
"clear\n",
"clc;\n",
"Fc1=1.1;//Fuel cost(1)=Rs 1.1/MBtu\n",
"Fc2=1;//Fuel cost(2)=1/MBtu\n",
"Fc3=1.2;//Fuel cost(3)=1.2/MBtu\n",
"P1max=600;\n",
"P1=P1max;\n",
"F1=600+7.1*P1+0.00141*(P1^2);//For P1= Pm1ax\n",
"Favg1=F1*Fc1/600;//Full load average production cost\n",
"P2max=450;\n",
"P2=P2max;\n",
"F2=350+7.8*P2+0.00195*(P2^2);//For P2= P2max\n",
"Favg2=F2*Fc2/450;//Full load average production cost\n",
"P3max=250;\n",
"P3=P3max;\n",
"F3=80+8*P3+0.0049*(P3^2);//For P3= P3max\n",
"Favg3=F3*Fc3/250;//Full load average production cost\n",
"mprintf('Priority List is as follows\n');\n",
"mprintf('Unit Rs/MWhr MinMW Max MW\n')\n",
"mprintf(' 2 %.3f 100 %.0f \n',Favg2,P2max)\n",
"mprintf(' 1 %.4f 60 %.0f \n',Favg1,P1max)\n",
"mprintf(' 3 %.2f 50 %.0f \n\n',Favg3,P3max)\n",
"Fmax1=P1max+P2max+P3max;\n",
"Fmax2=P2max+P1max\n",
"Fmax3=P2max\n",
"mprintf('Unit Commitment Scheme is follows\n')\n",
"mprintf('Combination Min.MW from Combination Max.MW from Combination\n');\n",
"mprintf('2+1+3 310 %.0f \n',Fmax1);\n",
"mprintf('2+1 260 %.0f \n',Fmax2);\n",
"mprintf('2 100 %.0f ',Fmax3);"
]
}
,
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Example 24.4: illustrate_the_dynamic_programming_for_preparing_an_optimal_unit_commitment.sce"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"// illustrate the dynamic programming for preparing an optimal unit commitment.\n",
"\n",
"clear\n",
"clc;\n",
"function[F1]=F1(P1)\n",
" F1=7.1*P1+.00141*(P1^2)\n",
" mprintf('F1(%.0f)=%.1f\n',P1,F1);\n",
"endfunction\n",
"function[f2]=f2(P2)\n",
" f2=7.8*P2+.00195*(P2^2)\n",
" mprintf('f2(%.0f)=%.0f\n',P2,f2);\n",
"endfunction\n",
"function[F]=F(P1,P2)\n",
" F1=7.1*P1+.00141*(P1^2)\n",
" F2=7.8*P2+.00195*(P2^2)\n",
" F=F1+F2\n",
" mprintf('F1(%.0f)+f2(%.0f)=%.0f\n',P1,P2,F);\n",
" endfunction\n",
"P1max=600;\n",
"P2max=450;\n",
"mprintf('Unit Commitment using Load 500MW\n')\n",
"F1(500);\n",
"mprintf('Since min. Power of second unit is 100MW , we find\n');\n",
"F(400,100);\n",
"F(380,120);\n",
"F(360,140);\n",
"mprintf('Therefore for load 500 MW , the load commitment on unit 1 is 400 MW and that on 2 is 100 MW which gives min. cost\n');\n",
"mprintf('Next we increase the load by 50 MW and loading unit 1 we get, \n');\n",
"F1(550);\n",
"mprintf('Also if we distribute a part of load to unit 2 we get ,\n')\n",
"F(450,100);\n",
"F(400,150);\n",
"F(350,200);\n",
"mprintf('Therefore for load 550 MW , the load commitment on unit 1 is 400 MW and that on 2 is 150 MW which gives min. cost\n');\n",
"\n",
"\n",
""
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Scilab",
"language": "scilab",
"name": "scilab"
},
"language_info": {
"file_extension": ".sce",
"help_links": [
{
"text": "MetaKernel Magics",
"url": "https://github.com/calysto/metakernel/blob/master/metakernel/magics/README.md"
}
],
"mimetype": "text/x-octave",
"name": "scilab",
"version": "0.7.1"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
|