Commit ecb81bd90196bcf1ee548fa02d61ae5e75373c7e
1 parent
2bd8e770
little modifly
Showing
2 changed files
with
101 additions
and
111 deletions
cal_gate.c renamed to calc_gate.c
| 1 | #include <stdio.h> | 1 | #include <stdio.h> |
| 2 | #include <stdlib.h> | 2 | #include <stdlib.h> |
| 3 | #include <math.h> | 3 | #include <math.h> |
| 4 | - | ||
| 5 | -#include "cal_gate.h" | ||
| 6 | - | ||
| 7 | - | 4 | +#include "calc_gate.h" |
| 8 | 5 | ||
| 9 | typedef enum { | 6 | typedef enum { |
| 10 | - gate_full_open_with_free_flow, /*A 闸门全开自由流*/ | 7 | + gate_full_open_with_free_flow = 0, /*A 闸门全开自由流*/ |
| 11 | gate_full_open_with_submerged_flow, /*B 闸门全开淹没流*/ | 8 | gate_full_open_with_submerged_flow, /*B 闸门全开淹没流*/ |
| 12 | gate_control_with_free_flow, /*C 闸门控制自由流*/ | 9 | gate_control_with_free_flow, /*C 闸门控制自由流*/ |
| 13 | gate_control_with_submerged_flow, /*D 闸门控制淹没流*/ | 10 | gate_control_with_submerged_flow, /*D 闸门控制淹没流*/ |
| @@ -18,10 +15,9 @@ typedef enum { | @@ -18,10 +15,9 @@ typedef enum { | ||
| 18 | }patterns_of_water; | 15 | }patterns_of_water; |
| 19 | 16 | ||
| 20 | enum { | 17 | enum { |
| 21 | - NOTHINGNESS, | 18 | + NOTHINGNESS = 0, |
| 22 | EXIST | 19 | EXIST |
| 23 | }; | 20 | }; |
| 24 | - | ||
| 25 | enum{ | 21 | enum{ |
| 26 | warped_wingwall=1, /*弯曲墙面*/ | 22 | warped_wingwall=1, /*弯曲墙面*/ |
| 27 | flat_wingwall, /*平整墙面*/ | 23 | flat_wingwall, /*平整墙面*/ |
| @@ -29,7 +25,7 @@ enum{ | @@ -29,7 +25,7 @@ enum{ | ||
| 29 | parallel_wingwall /*平行墙面*/ | 25 | parallel_wingwall /*平行墙面*/ |
| 30 | }; | 26 | }; |
| 31 | 27 | ||
| 32 | -struct A{ | 28 | +struct warped_wingwall_para{ |
| 33 | double m_warped_wingwall; | 29 | double m_warped_wingwall; |
| 34 | double m_warped_wingwall_ds; | 30 | double m_warped_wingwall_ds; |
| 35 | double m_flat_wingwall; | 31 | double m_flat_wingwall; |
| @@ -40,31 +36,15 @@ struct A{ | @@ -40,31 +36,15 @@ struct A{ | ||
| 40 | double m_parallel_wingwall_ds; | 36 | double m_parallel_wingwall_ds; |
| 41 | }; | 37 | }; |
| 42 | 38 | ||
| 43 | - | ||
| 44 | -struct B{ | ||
| 45 | - double fai_warped_wingwall; | ||
| 46 | - //float m_warped_wingwall_ds; | ||
| 47 | - double fai_flat_wingwall; | ||
| 48 | - //float m_flat_wingwall_ds; | ||
| 49 | - double fai_eight_c_wingwall; | ||
| 50 | - //float m_eight_c_wingwall_ds; | ||
| 51 | - double fai_parallel_wingwall; | ||
| 52 | - //float m_parallel_wingwall_ds; | 39 | +struct flat_wingwall_para{ |
| 40 | + double fai_warped_wingwall; //float m_warped_wingwall_ds; | ||
| 41 | + double fai_flat_wingwall; //float m_flat_wingwall_ds; | ||
| 42 | + double fai_eight_c_wingwall; //float m_eight_c_wingwall_ds; | ||
| 43 | + double fai_parallel_wingwall; //float m_parallel_wingwall_ds; | ||
| 53 | }; | 44 | }; |
| 54 | 45 | ||
| 55 | 46 | ||
| 56 | -struct C{ | ||
| 57 | - double miu_warped_wingwall; | ||
| 58 | - double miu_warped_wingwall_ds; | ||
| 59 | - double miu_flat_wingwall; | ||
| 60 | - double miu_flat_wingwall_ds; | ||
| 61 | - double miu_eight_c_wingwall; | ||
| 62 | - double miu_eight_c_wingwall_ds; | ||
| 63 | - double miu_parallel_wingwall; | ||
| 64 | - double miu_parallel_wingwall_ds; | ||
| 65 | -}; | ||
| 66 | - | ||
| 67 | -struct D{ | 47 | +struct eight_c_wingwall_para{ |
| 68 | double miu_warped_wingwall; | 48 | double miu_warped_wingwall; |
| 69 | double miu_warped_wingwall_ds; | 49 | double miu_warped_wingwall_ds; |
| 70 | double miu_flat_wingwall; | 50 | double miu_flat_wingwall; |
| @@ -74,32 +54,23 @@ struct D{ | @@ -74,32 +54,23 @@ struct D{ | ||
| 74 | double miu_parallel_wingwall; | 54 | double miu_parallel_wingwall; |
| 75 | double miu_parallel_wingwall_ds; | 55 | double miu_parallel_wingwall_ds; |
| 76 | }; | 56 | }; |
| 77 | - | ||
| 78 | - | ||
| 79 | typedef struct total{ | 57 | typedef struct total{ |
| 80 | - struct A A; | ||
| 81 | - struct B B; | ||
| 82 | - struct C C; | ||
| 83 | - struct D D; | 58 | + struct warped_wingwall_para A; |
| 59 | + struct flat_wingwall_para B; | ||
| 60 | + struct eight_c_wingwall_para C; | ||
| 61 | + struct eight_c_wingwall_para D; | ||
| 84 | }coefficient_infor; | 62 | }coefficient_infor; |
| 85 | 63 | ||
| 86 | - | ||
| 87 | - | ||
| 88 | /* | 64 | /* |
| 89 | *几种墙面分别对应的系数 | 65 | *几种墙面分别对应的系数 |
| 90 | * | 66 | * |
| 91 | */ | 67 | */ |
| 92 | -coefficient_infor coefficient={.A.m_warped_wingwall=0.325, .A.m_warped_wingwall_ds=0.380, .A.m_flat_wingwall=0.310, .A.m_flat_wingwall_ds=0.365,\ | ||
| 93 | - .A.m_eight_c_wingwall=0.330, .A.m_eight_c_wingwall_ds=0.390, .A.m_parallel_wingwall=0.295, .A.m_parallel_wingwall_ds=0.355,\ | ||
| 94 | - .B.fai_warped_wingwall=0.850,.B.fai_flat_wingwall=0.825, .B.fai_eight_c_wingwall=0.860,.B.fai_parallel_wingwall=0.795,\ | ||
| 95 | - .C.miu_warped_wingwall=0.60, .C.miu_warped_wingwall_ds=0.625,.C.miu_flat_wingwall=0.58, .C.miu_flat_wingwall_ds=0.60,\ | ||
| 96 | - .C.miu_eight_c_wingwall=0.62,.C.miu_eight_c_wingwall_ds=0.64,.C.miu_parallel_wingwall=0.61,.C.miu_parallel_wingwall_ds=0.65, | ||
| 97 | - .D.miu_warped_wingwall=0.60, .D.miu_warped_wingwall_ds=0.625,.D.miu_flat_wingwall=0.60, .D.miu_flat_wingwall_ds=0.60,\ | ||
| 98 | - .D.miu_eight_c_wingwall=0.64,.D.miu_eight_c_wingwall_ds=0.64,.D.miu_parallel_wingwall=0.63,.D.miu_parallel_wingwall_ds=0.65\ | ||
| 99 | - }; | ||
| 100 | - | ||
| 101 | - | ||
| 102 | - | 68 | +const coefficient_infor coefficient={ |
| 69 | + {0.325, 0.380, 0.310, 0.365, 0.330, 0.390, 0.295, 0.355}, | ||
| 70 | + {0.85, 0.825, 0.860, 0.795}, | ||
| 71 | + {0.6, 0.625, 0.58, 0.60, 0.62, 0.64, 0.61, 0.65}, | ||
| 72 | + {0.6, 0.625, 0.6, 0.6, 0.64, 0.64, 0.63, 0.65} | ||
| 73 | +}; | ||
| 103 | /* | 74 | /* |
| 104 | *函数名: data_validity_check() | 75 | *函数名: data_validity_check() |
| 105 | *参数: *param | 76 | *参数: *param |
| @@ -107,38 +78,32 @@ coefficient_infor coefficient={.A.m_warped_wingwall=0.325, .A.m_warped_wingwall | @@ -107,38 +78,32 @@ coefficient_infor coefficient={.A.m_warped_wingwall=0.325, .A.m_warped_wingwall | ||
| 107 | *返回值: 0表示参数是合法的,非0表示不合法 | 78 | *返回值: 0表示参数是合法的,非0表示不合法 |
| 108 | * | 79 | * |
| 109 | */ | 80 | */ |
| 110 | -char data_validity_check(struct param_gate *param) | 81 | +int data_validity_check(struct param_gate *param) |
| 111 | { | 82 | { |
| 112 | - if(param->wingwall <1 || param->wingwall>4){ | ||
| 113 | - printf("Invalid parameter of wingwall\r\n"); | ||
| 114 | - return 1; | 83 | + if(param->wingwall <warped_wingwall || param->wingwall>parallel_wingwall){ |
| 84 | + return -1; | ||
| 115 | } | 85 | } |
| 116 | - if(param->drop_step <0 || param->drop_step >1){ | ||
| 117 | - printf("Invalid parameter of drop_step\r\n"); | ||
| 118 | - return 2; | 86 | + if(!(param->drop_step = 0 || param->drop_step >1)){ |
| 87 | + return -1; | ||
| 119 | } | 88 | } |
| 120 | - if(param->openning_height_of_gate <0.0000001){ | ||
| 121 | - printf("Invalid parameter of openning_height_of_gate\r\n"); | ||
| 122 | - return 3; | 89 | + if(param->openning_height_of_gate <-0.0000001){ |
| 90 | + return -1; | ||
| 123 | } | 91 | } |
| 124 | - if(param->water_depth_front_of_gate <0.0000001){ | ||
| 125 | - printf("Invalid parameter of water_depth_front_of_gate\r\n"); | ||
| 126 | - return 4; | 92 | + if(param->water_depth_front_of_gate <-0.0000001){ |
| 93 | + return -1; | ||
| 127 | } | 94 | } |
| 128 | - if(param->water_depth_behind_of_gate <0.0000001){ | ||
| 129 | - printf("Invalid parameter of water_depth_behind_of_gate\r\n"); | ||
| 130 | - return 5; | 95 | + if(param->water_depth_behind_of_gate <-0.0000001){ |
| 96 | + return -1; | ||
| 131 | } | 97 | } |
| 132 | if(param->gate_width <0.0000001){ | 98 | if(param->gate_width <0.0000001){ |
| 133 | - printf("Invalid parameter of gate_width\r\n"); | ||
| 134 | - return 6; | 99 | + return -1; |
| 135 | } | 100 | } |
| 136 | return 0; | 101 | return 0; |
| 137 | } | 102 | } |
| 138 | 103 | ||
| 139 | /* | 104 | /* |
| 140 | *函数名: discrimination_of_flow_pattern() | 105 | *函数名: discrimination_of_flow_pattern() |
| 141 | - *参数: openning_height_of_gate 开闸高度 | 106 | + *参数: openning_height_of_gate 开闸高度 |
| 142 | * water_depth_front_of_gate 闸前水位 | 107 | * water_depth_front_of_gate 闸前水位 |
| 143 | * water_depth_behind_of_gate 闸后水位 | 108 | * water_depth_behind_of_gate 闸后水位 |
| 144 | * drop_step 跌槛 | 109 | * drop_step 跌槛 |
| @@ -150,7 +115,7 @@ char data_validity_check(struct param_gate *param) | @@ -150,7 +115,7 @@ char data_validity_check(struct param_gate *param) | ||
| 150 | patterns_of_water discrimination_of_flow_pattern(double openning_height_of_gate,double water_depth_front_of_gate,double water_depth_behind_of_gate,int drop_step) | 115 | patterns_of_water discrimination_of_flow_pattern(double openning_height_of_gate,double water_depth_front_of_gate,double water_depth_behind_of_gate,int drop_step) |
| 151 | { | 116 | { |
| 152 | if((openning_height_of_gate/water_depth_front_of_gate > 0.65) && (water_depth_behind_of_gate/water_depth_front_of_gate < 0.7)){ | 117 | if((openning_height_of_gate/water_depth_front_of_gate > 0.65) && (water_depth_behind_of_gate/water_depth_front_of_gate < 0.7)){ |
| 153 | - if(drop_step == EXIST) | 118 | + if(drop_step == EXIST) |
| 154 | return gate_full_open_with_free_flow_drop_step; | 119 | return gate_full_open_with_free_flow_drop_step; |
| 155 | else | 120 | else |
| 156 | return gate_full_open_with_free_flow; | 121 | return gate_full_open_with_free_flow; |
| @@ -178,16 +143,54 @@ struct datas{ | @@ -178,16 +143,54 @@ struct datas{ | ||
| 178 | double original_data_after; | 143 | double original_data_after; |
| 179 | double value; | 144 | double value; |
| 180 | }; | 145 | }; |
| 181 | - | ||
| 182 | -struct datas table[46]={{0.00,0.05,1.00},{0.05,0.15,0.990},{0.15,0.25,0.980},{0.25,0.35,0.970},{0.35,0.45,0.956},{0.45,0.475,0.947},{0.475,0.525,0.937},{0.525,0.575,0.925},\ | ||
| 183 | - {0.575,0.625,0.907},{0.625,0.675,0.885},{0.675,0.710,0.856},{0.710,0.730,0.843},{0.730,0.750,0.828},{0.750,0.770,0.813},{0.770,0.790,0.800},{0.790,0.805,0.778},\ | ||
| 184 | - {0.805,0.815,0.767},{0.815,0.825,0.755},{0.825,0.835,0.742},{0.835,0.845,0.728},{0.845,0.855,0.713},{0.855,0.865,0.698},{0.865,0.875,0.681},{0.875,0.885,0.662},\ | ||
| 185 | - {0.885,0.895,0.642},{0.895,0.9025,0.621},{0.9025,0.9075,0.608},{0.9075,0.9125,0.595},{0.9125,0.9175,0.580},{0.9175,0.9225,0.565},{0.9225,0.9275,0.549},\ | ||
| 186 | - {0.9275,0.9325,0.532},{0.9325,0.9375,0.514},{0.9375,0.9425,0.484},{0.9425,0.9475,0.473},{0.9475,0.9525,0.450},{0.9525,0.9575,0.427},{0.9575,0.9625,0.403},\ | ||
| 187 | - {0.9625,0.9675,0.375},{0.9675,0.9725,0.344},{0.9725,0.9775,0.318},{0.9775,0.9825,0.267},{0.9825,0.9875,0.225},{0.9875,0.9925,0.175},{0.9925,0.9975,0.115},\ | ||
| 188 | - {0.9975,1.0000,0.000} | 146 | +const struct datas table[46]={ |
| 147 | + {0.00,0.05,1.00}, | ||
| 148 | + {0.05,0.15,0.990}, | ||
| 149 | + {0.15,0.25,0.980}, | ||
| 150 | + {0.25,0.35,0.970}, | ||
| 151 | + {0.35,0.45,0.956}, | ||
| 152 | + {0.45,0.475,0.947}, | ||
| 153 | + {0.475,0.525,0.937}, | ||
| 154 | + {0.525,0.575,0.925}, | ||
| 155 | + {0.575,0.625,0.907}, | ||
| 156 | + {0.625,0.675,0.885}, | ||
| 157 | + {0.675,0.710,0.856}, | ||
| 158 | + {0.710,0.730,0.843}, | ||
| 159 | + {0.730,0.750,0.828}, | ||
| 160 | + {0.750,0.770,0.813}, | ||
| 161 | + {0.770,0.790,0.800}, | ||
| 162 | + {0.790,0.805,0.778}, | ||
| 163 | + {0.805,0.815,0.767}, | ||
| 164 | + {0.815,0.825,0.755}, | ||
| 165 | + {0.825,0.835,0.742}, | ||
| 166 | + {0.835,0.845,0.728}, | ||
| 167 | + {0.845,0.855,0.713}, | ||
| 168 | + {0.855,0.865,0.698}, | ||
| 169 | + {0.865,0.875,0.681}, | ||
| 170 | + {0.875,0.885,0.662}, | ||
| 171 | + {0.885,0.895,0.642}, | ||
| 172 | + {0.895,0.9025,0.621}, | ||
| 173 | + {0.9025,0.9075,0.608}, | ||
| 174 | + {0.9075,0.9125,0.595}, | ||
| 175 | + {0.9125,0.9175,0.580}, | ||
| 176 | + {0.9175,0.9225,0.565}, | ||
| 177 | + {0.9225,0.9275,0.549}, | ||
| 178 | + {0.9275,0.9325,0.532}, | ||
| 179 | + {0.9325,0.9375,0.514}, | ||
| 180 | + {0.9375,0.9425,0.484}, | ||
| 181 | + {0.9425,0.9475,0.473}, | ||
| 182 | + {0.9475,0.9525,0.450}, | ||
| 183 | + {0.9525,0.9575,0.427}, | ||
| 184 | + {0.9575,0.9625,0.403}, | ||
| 185 | + {0.9625,0.9675,0.375}, | ||
| 186 | + {0.9675,0.9725,0.344}, | ||
| 187 | + {0.9725,0.9775,0.318}, | ||
| 188 | + {0.9775,0.9825,0.267}, | ||
| 189 | + {0.9825,0.9875,0.225}, | ||
| 190 | + {0.9875,0.9925,0.175}, | ||
| 191 | + {0.9925,0.9975,0.115}, | ||
| 192 | + {0.9975,1.0000,0.000} | ||
| 189 | }; | 193 | }; |
| 190 | - | ||
| 191 | double find(double target) | 194 | double find(double target) |
| 192 | { | 195 | { |
| 193 | int i=0; | 196 | int i=0; |
| @@ -210,15 +213,13 @@ double find(double target) | @@ -210,15 +213,13 @@ double find(double target) | ||
| 210 | double get_coefficient_rou(double water_depth_front_of_gate,double water_depth_behind_of_gate) | 213 | double get_coefficient_rou(double water_depth_front_of_gate,double water_depth_behind_of_gate) |
| 211 | { | 214 | { |
| 212 | double s; | 215 | double s; |
| 213 | - | ||
| 214 | s=water_depth_behind_of_gate/water_depth_front_of_gate; | 216 | s=water_depth_behind_of_gate/water_depth_front_of_gate; |
| 215 | return find(s); | 217 | return find(s); |
| 216 | } | 218 | } |
| 217 | 219 | ||
| 218 | - | ||
| 219 | /* | 220 | /* |
| 220 | - *函数名: cal_gate_full_open_with_free_flow() | ||
| 221 | - *参数: water_depth_front_of_gate 闸前水深 | 221 | + *函数名: cal_gate_full_open_with_free_flow() |
| 222 | + *参数: water_depth_front_of_gate 闸前水深 | ||
| 222 | * water_depth_behind_of_gate 闸后水深 | 223 | * water_depth_behind_of_gate 闸后水深 |
| 223 | * gate_width 闸门宽度 | 224 | * gate_width 闸门宽度 |
| 224 | * wingwall 翼墙类型 | 225 | * wingwall 翼墙类型 |
| @@ -227,7 +228,6 @@ double get_coefficient_rou(double water_depth_front_of_gate,double water_depth_b | @@ -227,7 +228,6 @@ double get_coefficient_rou(double water_depth_front_of_gate,double water_depth_b | ||
| 227 | *返回值: 瞬时流量 | 228 | *返回值: 瞬时流量 |
| 228 | * | 229 | * |
| 229 | */ | 230 | */ |
| 230 | - | ||
| 231 | double cal_gate_full_open_with_free_flow(double water_depth_front_of_gate,double gate_width,int wingwall,int ds) | 231 | double cal_gate_full_open_with_free_flow(double water_depth_front_of_gate,double gate_width,int wingwall,int ds) |
| 232 | { | 232 | { |
| 233 | double instantaneousFlow; | 233 | double instantaneousFlow; |
| @@ -236,7 +236,7 @@ double cal_gate_full_open_with_free_flow(double water_depth_front_of_gate,double | @@ -236,7 +236,7 @@ double cal_gate_full_open_with_free_flow(double water_depth_front_of_gate,double | ||
| 236 | case warped_wingwall: | 236 | case warped_wingwall: |
| 237 | if(ds == EXIST) | 237 | if(ds == EXIST) |
| 238 | instantaneousFlow=coefficient.A.m_warped_wingwall_ds*gate_width*water_depth_front_of_gate*sqrt(2*g*water_depth_front_of_gate); | 238 | instantaneousFlow=coefficient.A.m_warped_wingwall_ds*gate_width*water_depth_front_of_gate*sqrt(2*g*water_depth_front_of_gate); |
| 239 | - else | 239 | + else |
| 240 | instantaneousFlow=coefficient.A.m_warped_wingwall*gate_width*water_depth_front_of_gate*sqrt(2*g*water_depth_front_of_gate); | 240 | instantaneousFlow=coefficient.A.m_warped_wingwall*gate_width*water_depth_front_of_gate*sqrt(2*g*water_depth_front_of_gate); |
| 241 | break; | 241 | break; |
| 242 | case flat_wingwall: | 242 | case flat_wingwall: |
| @@ -262,8 +262,8 @@ double cal_gate_full_open_with_free_flow(double water_depth_front_of_gate,double | @@ -262,8 +262,8 @@ double cal_gate_full_open_with_free_flow(double water_depth_front_of_gate,double | ||
| 262 | } | 262 | } |
| 263 | 263 | ||
| 264 | /* | 264 | /* |
| 265 | - *函数名: cal_gate_full_open_with_submerged_flow() | ||
| 266 | - *参数: water_depth_front_of_gate 闸前水深 | 265 | + *函数名: cal_gate_full_open_with_submerged_flow() |
| 266 | + *参数: water_depth_front_of_gate 闸前水深 | ||
| 267 | * water_depth_behind_of_gate 闸后水深 | 267 | * water_depth_behind_of_gate 闸后水深 |
| 268 | * gate_width 闸门宽度 | 268 | * gate_width 闸门宽度 |
| 269 | * wingwall 翼墙类型 | 269 | * wingwall 翼墙类型 |
| @@ -285,21 +285,21 @@ double cal_gate_full_open_with_submerged_flow(double water_depth_front_of_gate,d | @@ -285,21 +285,21 @@ double cal_gate_full_open_with_submerged_flow(double water_depth_front_of_gate,d | ||
| 285 | instantaneousFlow=coefficient.B.fai_warped_wingwall*gate_width*water_depth_behind_of_gate*sqrt(2*g*(water_depth_front_of_gate-water_depth_behind_of_gate)); | 285 | instantaneousFlow=coefficient.B.fai_warped_wingwall*gate_width*water_depth_behind_of_gate*sqrt(2*g*(water_depth_front_of_gate-water_depth_behind_of_gate)); |
| 286 | break; | 286 | break; |
| 287 | case flat_wingwall: | 287 | case flat_wingwall: |
| 288 | - if(ds == EXIST) | 288 | + if(ds == EXIST) |
| 289 | instantaneousFlow=coefficient.B.fai_flat_wingwall*gate_width*get_coefficient_rou(water_depth_front_of_gate,water_depth_behind_of_gate)*water_depth_behind_of_gate\ | 289 | instantaneousFlow=coefficient.B.fai_flat_wingwall*gate_width*get_coefficient_rou(water_depth_front_of_gate,water_depth_behind_of_gate)*water_depth_behind_of_gate\ |
| 290 | *sqrt(2*g*water_depth_front_of_gate); | 290 | *sqrt(2*g*water_depth_front_of_gate); |
| 291 | else | 291 | else |
| 292 | instantaneousFlow=coefficient.B.fai_flat_wingwall*gate_width*water_depth_behind_of_gate*sqrt(2*g*(water_depth_front_of_gate-water_depth_behind_of_gate)); | 292 | instantaneousFlow=coefficient.B.fai_flat_wingwall*gate_width*water_depth_behind_of_gate*sqrt(2*g*(water_depth_front_of_gate-water_depth_behind_of_gate)); |
| 293 | break; | 293 | break; |
| 294 | case eight_c_wingwall: | 294 | case eight_c_wingwall: |
| 295 | - if(ds == EXIST) | 295 | + if(ds == EXIST) |
| 296 | instantaneousFlow=coefficient.B.fai_eight_c_wingwall*gate_width*get_coefficient_rou(water_depth_front_of_gate,water_depth_behind_of_gate)*water_depth_behind_of_gate\ | 296 | instantaneousFlow=coefficient.B.fai_eight_c_wingwall*gate_width*get_coefficient_rou(water_depth_front_of_gate,water_depth_behind_of_gate)*water_depth_behind_of_gate\ |
| 297 | *sqrt(2*g*water_depth_front_of_gate); | 297 | *sqrt(2*g*water_depth_front_of_gate); |
| 298 | else | 298 | else |
| 299 | instantaneousFlow=coefficient.B.fai_eight_c_wingwall*gate_width*water_depth_behind_of_gate*sqrt(2*g*(water_depth_front_of_gate-water_depth_behind_of_gate)); | 299 | instantaneousFlow=coefficient.B.fai_eight_c_wingwall*gate_width*water_depth_behind_of_gate*sqrt(2*g*(water_depth_front_of_gate-water_depth_behind_of_gate)); |
| 300 | break; | 300 | break; |
| 301 | case parallel_wingwall: | 301 | case parallel_wingwall: |
| 302 | - if(ds == EXIST) | 302 | + if(ds == EXIST) |
| 303 | instantaneousFlow=coefficient.B.fai_parallel_wingwall*gate_width*get_coefficient_rou(water_depth_front_of_gate,water_depth_behind_of_gate)*water_depth_behind_of_gate\ | 303 | instantaneousFlow=coefficient.B.fai_parallel_wingwall*gate_width*get_coefficient_rou(water_depth_front_of_gate,water_depth_behind_of_gate)*water_depth_behind_of_gate\ |
| 304 | *sqrt(2*g*water_depth_front_of_gate); | 304 | *sqrt(2*g*water_depth_front_of_gate); |
| 305 | else | 305 | else |
| @@ -310,8 +310,8 @@ double cal_gate_full_open_with_submerged_flow(double water_depth_front_of_gate,d | @@ -310,8 +310,8 @@ double cal_gate_full_open_with_submerged_flow(double water_depth_front_of_gate,d | ||
| 310 | } | 310 | } |
| 311 | 311 | ||
| 312 | /* | 312 | /* |
| 313 | - *函数名: cal_gate_control_with_free_flow() | ||
| 314 | - *参数: water_depth_front_of_gate 闸前水深 | 313 | + *函数名: cal_gate_control_with_free_flow() |
| 314 | + *参数: water_depth_front_of_gate 闸前水深 | ||
| 315 | * water_depth_behind_of_gate 闸后水深 | 315 | * water_depth_behind_of_gate 闸后水深 |
| 316 | * height_of_gate 闸门开启高度 | 316 | * height_of_gate 闸门开启高度 |
| 317 | * gate_width 闸门宽度 | 317 | * gate_width 闸门宽度 |
| @@ -355,15 +355,15 @@ double cal_gate_control_with_free_flow(double water_depth_front_of_gate,double w | @@ -355,15 +355,15 @@ double cal_gate_control_with_free_flow(double water_depth_front_of_gate,double w | ||
| 355 | } | 355 | } |
| 356 | 356 | ||
| 357 | /* | 357 | /* |
| 358 | - *函数名: cal_gate_control_with_submerged_flow() | ||
| 359 | - *参数: water_depth_front_of_gate 闸前水深 | 358 | + *函数名: cal_gate_control_with_submerged_flow() |
| 359 | + *参数: water_depth_front_of_gate 闸前水深 | ||
| 360 | * water_depth_behind_of_gate 闸后水深 | 360 | * water_depth_behind_of_gate 闸后水深 |
| 361 | * height_of_gate 闸门开启高度 | 361 | * height_of_gate 闸门开启高度 |
| 362 | * gate_width 闸门宽度 | 362 | * gate_width 闸门宽度 |
| 363 | * wingwall 翼墙类型 | 363 | * wingwall 翼墙类型 |
| 364 | * ds 跌槛 | 364 | * ds 跌槛 |
| 365 | - *功能: 根据参数,计算出闸门控制淹没流模型下的瞬时流量 | ||
| 366 | - *返回值: 瞬时流量 | 365 | + *功能: 根据参数,计算出闸门控制淹没流模型下的瞬时流量 |
| 366 | + *返回值: 瞬时流量 | ||
| 367 | * | 367 | * |
| 368 | */ | 368 | */ |
| 369 | double cal_gate_control_with_submerged_flow(double water_depth_front_of_gate,double water_depth_behind_of_gate,double height_of_gate,double gate_width,int wingwall,int ds) | 369 | double cal_gate_control_with_submerged_flow(double water_depth_front_of_gate,double water_depth_behind_of_gate,double height_of_gate,double gate_width,int wingwall,int ds) |
| @@ -399,15 +399,9 @@ double cal_gate_control_with_submerged_flow(double water_depth_front_of_gate,dou | @@ -399,15 +399,9 @@ double cal_gate_control_with_submerged_flow(double water_depth_front_of_gate,dou | ||
| 399 | return instantaneousFlow; | 399 | return instantaneousFlow; |
| 400 | } | 400 | } |
| 401 | 401 | ||
| 402 | - | ||
| 403 | - | ||
| 404 | - | ||
| 405 | - | ||
| 406 | - | ||
| 407 | - | ||
| 408 | /* | 402 | /* |
| 409 | *函数名: Calculation_of_InstantaneousFlow() | 403 | *函数名: Calculation_of_InstantaneousFlow() |
| 410 | - *参数: *param 指向struct param_gate的指针 | 404 | + *参数: *param 指向struct param_gate的指针 |
| 411 | * | 405 | * |
| 412 | *功能: 根据参数,计算出瞬时流量 | 406 | *功能: 根据参数,计算出瞬时流量 |
| 413 | *返回值: 瞬时流量 | 407 | *返回值: 瞬时流量 |
| @@ -416,10 +410,10 @@ double cal_gate_control_with_submerged_flow(double water_depth_front_of_gate,dou | @@ -416,10 +410,10 @@ double cal_gate_control_with_submerged_flow(double water_depth_front_of_gate,dou | ||
| 416 | int Calculation_of_InstantaneousFlow(double *value,struct param_gate *param) | 410 | int Calculation_of_InstantaneousFlow(double *value,struct param_gate *param) |
| 417 | { | 411 | { |
| 418 | patterns_of_water get_pattern; | 412 | patterns_of_water get_pattern; |
| 419 | - | 413 | + |
| 420 | if(data_validity_check(param)!=0) | 414 | if(data_validity_check(param)!=0) |
| 421 | return -1; | 415 | return -1; |
| 422 | - | 416 | + |
| 423 | get_pattern = discrimination_of_flow_pattern(param->openning_height_of_gate,param->water_depth_front_of_gate,param->water_depth_behind_of_gate,param->drop_step); | 417 | get_pattern = discrimination_of_flow_pattern(param->openning_height_of_gate,param->water_depth_front_of_gate,param->water_depth_behind_of_gate,param->drop_step); |
| 424 | switch(get_pattern){ | 418 | switch(get_pattern){ |
| 425 | case gate_full_open_with_free_flow: | 419 | case gate_full_open_with_free_flow: |
cal_gate.h renamed to calc_gate.h
| 1 | -#ifndef __CAL_GATE_H | ||
| 2 | -#define __CAL_GATE_H | 1 | +#ifndef _CALC_GATE_H |
| 2 | +#define _CALC_GATE_H | ||
| 3 | 3 | ||
| 4 | #define g 9.81 | 4 | #define g 9.81 |
| 5 | 5 | ||
| 6 | struct param_gate{ | 6 | struct param_gate{ |
| 7 | int wingwall; | 7 | int wingwall; |
| 8 | - int drop_step; | 8 | + int drop_step; |
| 9 | double openning_height_of_gate; | 9 | double openning_height_of_gate; |
| 10 | double water_depth_front_of_gate; | 10 | double water_depth_front_of_gate; |
| 11 | double water_depth_behind_of_gate; | 11 | double water_depth_behind_of_gate; |
| 12 | double gate_width; | 12 | double gate_width; |
| 13 | }; | 13 | }; |
| 14 | 14 | ||
| 15 | - | ||
| 16 | -//double Calculation_of_InstantaneousFlow(double openning_height_of_gate, double water_depth_front_of_gate,double water_depth_behind_of_gate,double gate_width,int wingwall,int drop_step); | ||
| 17 | int Calculation_of_InstantaneousFlow(double *value,struct param_gate *param); | 15 | int Calculation_of_InstantaneousFlow(double *value,struct param_gate *param); |
| 18 | 16 | ||
| 19 | - | ||
| 20 | - | ||
| 21 | #endif | 17 | #endif |