bems.helper.js 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. $(function () {
  2. 'use strict';
  3. //var AH = getAH(80/100, 30);
  4. //alert(AH);
  5. function GetMonthAirTempSetValue(month, ft) {
  6. //var now = new Date();
  7. //switch (now.getMonth)
  8. switch (month) {
  9. case 0: return ft.T1;
  10. case 1: return ft.T2;
  11. case 2: return ft.T3;
  12. case 3: return ft.T4;
  13. case 4: return ft.T5;
  14. case 5: return ft.T6;
  15. case 6: return ft.T7;
  16. case 7: return ft.T8;
  17. case 8: return ft.T9;
  18. case 9: return ft.T10;
  19. case 10: return ft.T11;
  20. case 11: return ft.T12;
  21. }
  22. return 0;
  23. }
  24. function GetMonthZoneTempHumiSetValue(month, ft) {
  25. //var now = new Date();
  26. var value = {
  27. temp: 0, humi: 0
  28. };
  29. switch (month) {
  30. case 0: value.temp = ft.T1; value.humi = ft.H1; break;
  31. case 1: value.temp = ft.T2; value.humi = ft.H2; break;
  32. case 2: value.temp = ft.T3; value.humi = ft.H3; break;
  33. case 3: value.temp = ft.T4; value.humi = ft.H4; break;
  34. case 4: value.temp = ft.T5; value.humi = ft.H5; break;
  35. case 5: value.temp = ft.T6; value.humi = ft.H6; break;
  36. case 6: value.temp = ft.T7; value.humi = ft.H7; break;
  37. case 7: value.temp = ft.T8; value.humi = ft.H8; break;
  38. case 8: value.temp = ft.T9; value.humi = ft.H9; break;
  39. case 9: value.temp = ft.T10; value.humi = ft.H10; break;
  40. case 10: value.temp = ft.T11; value.humi = ft.H11; break;
  41. case 11: value.temp = ft.T12; value.humi = ft.H12; break;
  42. }
  43. return value;
  44. }
  45. function getENTHALPY(humi, temp) {
  46. var height = 101325 * Math.pow((1 - 2.25577 * Math.pow(10, -5) * 50), 5.2559);
  47. //alert(height);
  48. /*
  49. //절대습도
  50. var ahl = 0.62198 * 80 * sapl / (height - 80 * sapl);
  51. alert(ahl);
  52. var ahh = 0.62198 * 80 * saph / (height - 80 * saph);
  53. alert(ahh);
  54. */
  55. //포화공기 압력
  56. function getSAP(temp) {
  57. var cl = new Array(-5674.5359, 6.3925247, -0.009677843, 6.22157E-07, 2.07478E-09, -9.48402E-13, 4.1635019);
  58. var ch = new Array(-5800.2206, 1.3914993, -0.048640239, 4.17648E-05, -1.44521E-08, 6.5459673);
  59. var at = temp + 273.15;
  60. if (temp < 0)
  61. return Math.exp(cl[0] / at + cl[1] + cl[2] * at + cl[3] * Math.pow(at, 2) + cl[4] * Math.pow(at, 3) + cl[5] * Math.pow(at, 4) + cl[6] * Math.log(at));
  62. return Math.exp(ch[0] / at + ch[1] + ch[2] * at + ch[3] * Math.pow(at, 2) + ch[4] * Math.pow(at, 3) + ch[5] * Math.log(at));
  63. }
  64. //var SAP = getSAP(80/100, 30.0);
  65. //alert(SAP);
  66. // 절대습도
  67. function getAH(humi, temp) {
  68. return (0.62198 * humi * getSAP(temp)) / (height - humi * getSAP(temp));
  69. }
  70. return 1.006 * temp + (2501 + (1.86 * temp)) * getAH(humi, temp);
  71. }
  72. function calculateCo2Func(objCo2) {
  73. return function (x, fuelTypeId) {
  74. //return Math.round(x * objCo2[fuelTypeId] / 1000);
  75. //return Math.round(x * objCo2[fuelTypeId]);
  76. //return x * objCo2[fuelTypeId]; hcLee 2017 02 17
  77. if (objCo2[fuelTypeId] === undefined) return 0; // hcLee 2017 02 17
  78. return x * objCo2[fuelTypeId]; // hcLee 2017 02 17
  79. //var v = x * objCo2[fuelTypeId];
  80. //return Math.floor(v * 100) / 100;
  81. };
  82. }
  83. function calculateToeFunc(objToe) {
  84. return function (x, fuelTypeId) {
  85. //return x * objToe[fuelTypeId].pureFactor; hcLee 2017 02 17
  86. if (objToe[fuelTypeId] === undefined) return 0;// hcLee 2017 02 17
  87. return x * objToe[fuelTypeId].pureFactor;// hcLee 2017 02 17
  88. };
  89. }
  90. function calculateKCALFunc(objToe) {
  91. return function (x, fuelTypeId) {
  92. if (x == 0) return 0; //hcLee 2016 07 06
  93. //return x * objToe[fuelTypeId].KCAL; hcLee 2017 02 17
  94. if (objToe[fuelTypeId] === undefined) return 0; // hcLee 2017 02 17
  95. return x * objToe[fuelTypeId].KCAL;// hcLee 2017 02 17
  96. };
  97. }
  98. BWA.Bems = {
  99. refineFactorCo2DataArray: function (factorCo2Array) {
  100. var objCo2 = {};
  101. _.each(factorCo2Array, function (factor) {
  102. objCo2[factor.FuelTypeId()] = factor.Factor();
  103. });
  104. objCo2.calculate = calculateCo2Func(objCo2);
  105. return objCo2;
  106. },
  107. refineFactorToeDataArray: function (factorToeArray) {
  108. var objToe = {};
  109. _.each(factorToeArray, function (factor) {
  110. objToe[factor.FuelTypeId()] = {
  111. totalFactor: factor.TotalFactor(),
  112. pureFactor: factor.PureFactor(),
  113. KCAL: factor.kcal() // hcLee 2016 07 13 추가
  114. };
  115. });
  116. objToe.calculate = calculateToeFunc(objToe);
  117. return objToe;
  118. },
  119. refineFactorKCalDataArray: function (factorToeArray) {
  120. var objToe = {};
  121. _.each(factorToeArray, function (factor) {
  122. objToe[factor.FuelTypeId()] = {
  123. totalFactor: factor.TotalFactor(),
  124. pureFactor: factor.PureFactor(),
  125. KCAL: factor.kcal()
  126. };
  127. });
  128. objToe.calculate = calculateKCALFunc(objToe);
  129. return objToe;
  130. },
  131. refinegetENTHALPY: function (t, h) {
  132. return getENTHALPY(h, t);
  133. },
  134. refineGetMonthAirTempSetValue: function (month, ft) {
  135. return GetMonthAirTempSetValue(month, ft);
  136. },
  137. refineGetMonthZoneTempHumiSetValue: function (month, ft) {
  138. return GetMonthZoneTempHumiSetValue(month, ft);
  139. },
  140. };
  141. });