gtaoidcore.h 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. //
  2. // Created by lloyd on 2020/12/2.
  3. //
  4. #ifndef GTCVR_GTAOIDCORE_H
  5. #define GTCVR_GTAOIDCORE_H
  6. #include "DataMapping/dgns_gtbaseparam.h"
  7. class gtaoidcore {
  8. public:
  9. class gtrevision {
  10. public:
  11. std::string sgt;
  12. std::string sgtx;
  13. double cha;
  14. std::string result = "";
  15. double **cardArray;
  16. double **card;
  17. double cc1;
  18. double maxLoad;
  19. double minLoad;
  20. double maxShift;
  21. double minShift;
  22. int pointNum;
  23. double loadmin;
  24. int minShiftPoint;
  25. int maxShiftPoint;
  26. double maxShiftLoad;
  27. double minShiftLoad;
  28. public:
  29. void sgt_encode(dgns_gtbaseparam *_dgns_gtbaseparam);
  30. };
  31. class calbgt {
  32. public:
  33. double maxShift;
  34. double minShift = 1000;
  35. double maxLoad;
  36. double minLoad;
  37. std::string cha;
  38. std::string _maxShift;
  39. std::string _minShift;
  40. std::string _maxLoad;
  41. std::string _minLoad;
  42. double cc;
  43. double cc1;
  44. int pointNum;
  45. double **card;
  46. double **cardSlope;
  47. double **cardMakeUp;
  48. double znxs;
  49. double theorycc;
  50. double power;
  51. double yxcc;
  52. double makeUpPower;
  53. std::string result;
  54. gtrevision _encode;
  55. std::string bgtstr = "";
  56. std::vector<std::vector<double>> bgt;
  57. int calnumb = 0;
  58. void cal_bgt(const gtrevision &_encode, const std::string &zdjg);
  59. int p;
  60. private:
  61. double dFunXShXiGeMa_n(double dWuMiGa, double DT, int iCShn, double *dZaiHe, int iDianShu);
  62. double dFunXShTao_n(double dWuMiGa, double DT, int iCShn, double *dZaiHe, int iDianShu);
  63. double dFunXShMiu_n(double dWuMiGa, double DT, int iCShn, double *dWeiYi, int iDianShu);
  64. double dFunXShDeErTa_n(double dWuMiGa, double DT, int iCShn, double *dWeiYi, int iDianShu);
  65. double dFunFLYZaiHe(double dWuMiGa, int iCShn, double *dXiGeMa, double *dTao, double dShiJian_t);
  66. double dFunYWeiYi(double dWuMiGa, int iCShn, double *dMiu, double *dDeErTa, double dShiJian_t);
  67. double dFunSH(double dz);
  68. double dFunXSha_n(double dWuMiGa, int iCShn, double dCShC, double dCSHa);
  69. double dFunXShB_n(double dWuMiGa, int iCShn, double dCShC, double dCSHa);
  70. double dFunXShK_n(double dan, double dBn, double DXiGeMa, double dTaon, double dE, double dAr);
  71. double dFunXShU_n(double dan, double dBn, double DXiGeMan, double dTaon, double dE, double dAr);
  72. double
  73. dFunZLXShC(double dWuMiGa, double dCSHa, double dCSh_u, double dRor, double dAr, double dDt, double dDr,
  74. double dL);
  75. double dFunO_n(double dx, double dKn, double dBn, double dDeErTan, double dan, double dUn, double dMiun);
  76. double dFunP_n(double dx, double dKn, double dBn, double dDeErTan, double dan, double dUn, double dMiun);
  77. double
  78. dFunPianO_n(double dx, double dKn, double dBn, double dDeErTan, double dan, double dUn, double dMiun,
  79. double dTaon,
  80. double DXiGeMan, double dE, double dAr);
  81. double
  82. dFunPianP_n(double dx, double dKn, double dBn, double dDeErTan, double dan, double dUn, double dMiun,
  83. double dTaon,
  84. double DXiGeMan, double dE, double dAr);
  85. double
  86. dFunUxt(double dx, double dWuMiGa, double dXiGeMa0, double dMiu0, double dE, double dAr, int iCShn, double *dOn,
  87. double *dPn, double dShiJian_t);
  88. double
  89. dFunFxt(double dWuMiGa, double dXiGeMa0, double dE, double dAr, int iCShn, double *dPianOn, double *dPianPn,
  90. double dShiJian_t);
  91. std::vector<std::vector<double>>
  92. subGeJiGanGT(double dNowGanSh, double dGanJing, double GanMidu, double DXML_E, double *DdiMianWY,
  93. double *dYeZhong,
  94. double chongci, int TotalPoint, int UpPoint, int iNN1, double Viscosity, double Tubingsize,
  95. double &dzxwyzh, double &dzxwy, double &dbmaxload, double &dbminload, double &ddZNXShC);
  96. };
  97. class CardSlopeRec {
  98. public:
  99. double Card_Shift;
  100. double Card_Slope;
  101. double PumpCard_Shift;
  102. double PumpCard_Slope;
  103. };
  104. /**
  105. *
  106. * @param sgt
  107. * @param bgt
  108. * @param cc
  109. * @param cc1
  110. * @param zdjg
  111. * @param bj 泵径 mm
  112. * @param bs 泵深 m
  113. * @param hsl 含水率 %
  114. * @param smd 水密度 t/m³
  115. * @param ymd 油密度 t/m³
  116. * @param qyb 气液比 小数
  117. * @param dym 动液面 m
  118. * @param bdxs
  119. * @param gradient_1
  120. * @param gradient_10
  121. * @param gradient_2
  122. * @param gradient_3
  123. * @param gradient_4
  124. * @param gradient_5
  125. * @param gradient_6
  126. * @param gradient_7
  127. * @param gradient_8
  128. * @param gradient_9
  129. * @param dividenum_1
  130. * @param dividenum_2
  131. * @param dividenum_3
  132. * @param dividenum_4
  133. * @param dividenum_5
  134. * @param dividenum_6
  135. * @param dividenum_7
  136. * @param dividenum_8
  137. * @param dividenum_9
  138. * @param dividenum_10
  139. * @return 日产液量 日产油量 日产水量 日产气量 泵效 理论排量 实际冲程 有效冲程 左冲程 右冲程 冲程损失 漏失损失 gyss 有效冲程比例
  140. */
  141. std::vector<double>
  142. cal_ylandon(std::vector<std::vector<double>> sgt, std::vector<std::vector<double>> bgt, double cc, double cc1, std::string zdjg, double bj,
  143. double bs, double hsl, double smd, double ymd, double qyb, double dym, double bdxs, double gradient_1,
  144. double gradient_10, double gradient_2, double gradient_3, double gradient_4, double gradient_5,
  145. double gradient_6, double gradient_7, double gradient_8, double gradient_9, double dividenum_1,
  146. double dividenum_2, double dividenum_3, double dividenum_4, double dividenum_5, double dividenum_6,
  147. double dividenum_7, double dividenum_8, double dividenum_9, double dividenum_10);
  148. };
  149. #endif //GTCVR_GTAOIDCORE_H