Loading…

方法名称: rectangular_broad_crested_weir_method_lin_table_generation

方法ID: 0x4461

方法标签: Generate Linearization Table

方法描述: Generate linearization table with 32 input and 32 output points.


  • {
  • float rblengthconverted;
  • float rbwidthconverted;
  • float rbheightconverted;
  • float rbheadconverted;
  • float flowratecalculated;
  • int i;
  • double Factor;
  • char disp_string1[135];
  • int slen1;
  • slen1 = 135;
  • _set_device_status(0xFF,0);
  • _set_xmtr_device_status(0xFF,0);
  • _set_all_resp_code(0);
  • _set_xmtr_all_resp_code(0);
  • _get_dictionary_string(19726337,disp_string1,slen1);
  • ACKNOWLEDGE(disp_string1);
  • _add_abort_method(4118);
  • ACKNOWLEDGE(literal_string(1546));
  • PUT_MESSAGE(literal_string(1547));
  • activateLineariser = 0;
  • send_command(213);
  • index_linpoints = 0;
  • lin_input_0 = 0.0;
  • lin_output_0 = 0.0;
  • send_command(211);
  • index_linpoints = 31;
  • lin_input_31 = span_Obj_value_0;
  • lin_output_31 = 100.00;
  • send_command(211);
  • for (i = 1; i < 31; i = i + 1)
  • {
  • index_linpoints = i;
  • Factor = i * 1.0 / 31.0;
  • array_linpoints[i].inputpoint = span_Obj_value_0 * Factor;
  • if (Distance_Obj_unit == 44)
  • {
  • rblengthconverted = rb_weir_length * 0.3048;
  • rbwidthconverted = rb_weir_width * 0.3048;
  • rbheightconverted = rb_weir_height * 0.3048;
  • rbheadconverted = array_linpoints[i].inputpoint * 0.3048;
  • }
  • else
  • if (Distance_Obj_unit == 45)
  • {
  • rblengthconverted = rb_weir_length * 1;
  • rbwidthconverted = rb_weir_width * 1;
  • rbheightconverted = rb_weir_height * 1;
  • rbheadconverted = array_linpoints[i].inputpoint * 1;
  • }
  • else
  • if (Distance_Obj_unit == 47)
  • {
  • rblengthconverted = rb_weir_length * 0.0254;
  • rbwidthconverted = rb_weir_width * 0.0254;
  • rbheightconverted = rb_weir_height * 0.0254;
  • rbheadconverted = array_linpoints[i].inputpoint * 0.0254;
  • }
  • else
  • if (Distance_Obj_unit == 48)
  • {
  • rblengthconverted = rb_weir_length * 0.01;
  • rbwidthconverted = rb_weir_width * 0.01;
  • rbheightconverted = rb_weir_height * 0.01;
  • rbheadconverted = array_linpoints[i].inputpoint * 0.01;
  • }
  • else
  • if (Distance_Obj_unit == 49)
  • {
  • rblengthconverted = rb_weir_length * 0.001;
  • rbwidthconverted = rb_weir_width * 0.001;
  • rbheightconverted = rb_weir_height * 0.001;
  • rbheadconverted = array_linpoints[i].inputpoint * 0.001;
  • }
  • rb_dischargecoefficientcalc1 = rbheadconverted / rbheightconverted;
  • rb_dischargecoefficientcalc2 = rbheadconverted / rblengthconverted;
  • if (rb_dischargecoefficientcalc1 < 0.1 || rb_dischargecoefficientcalc2 < 0.1)
  • {
  • flowratecalculated = 1.704599 * 0.850 * rbwidthconverted * pow(rbheadconverted,1.5);
  • }
  • else
  • if (rb_dischargecoefficientcalc1 >= 0.1 && rb_dischargecoefficientcalc1 < 0.3 && (rb_dischargecoefficientcalc2 >= 0.1 && rb_dischargecoefficientcalc2 < 0.3))
  • {
  • flowratecalculated = 1.704599 * 0.855 * rbwidthconverted * pow(rbheadconverted,1.5);
  • }
  • else
  • if (rb_dischargecoefficientcalc1 >= 0.3 && rb_dischargecoefficientcalc1 < 0.5 && (rb_dischargecoefficientcalc2 >= 0.1 && rb_dischargecoefficientcalc2 < 0.3))
  • {
  • flowratecalculated = 1.704599 * 0.873 * rbwidthconverted * pow(rbheadconverted,1.5);
  • }
  • else
  • if (rb_dischargecoefficientcalc1 >= 0.5 && rb_dischargecoefficientcalc1 < 0.7 && (rb_dischargecoefficientcalc2 >= 0.1 && rb_dischargecoefficientcalc2 < 0.3))
  • {
  • flowratecalculated = 1.704599 * 0.892 * rbwidthconverted * pow(rbheadconverted,1.5);
  • }
  • else
  • if (rb_dischargecoefficientcalc1 >= 0.7 && rb_dischargecoefficientcalc1 < 0.9 && (rb_dischargecoefficientcalc2 >= 0.1 && rb_dischargecoefficientcalc2 < 0.3))
  • {
  • flowratecalculated = 1.704599 * 0.911 * rbwidthconverted * pow(rbheadconverted,1.5);
  • }
  • else
  • if (rb_dischargecoefficientcalc1 >= 0.9 && rb_dischargecoefficientcalc1 < 1.1 && (rb_dischargecoefficientcalc2 >= 0.1 && rb_dischargecoefficientcalc2 < 0.3))
  • {
  • flowratecalculated = 1.704599 * 0.929 * rbwidthconverted * pow(rbheadconverted,1.5);
  • }
  • else
  • if (rb_dischargecoefficientcalc1 >= 1.1 && rb_dischargecoefficientcalc1 < 1.3 && (rb_dischargecoefficientcalc2 >= 0.1 && rb_dischargecoefficientcalc2 < 0.3))
  • {


请登录以获得完整内容