MEASUR-Tools-Suite v1.0.11
The MEASUR Tools Suite is a collection of industrial efficiency calculations written in C++ and with bindings for compilation to WebAssembly.
Loading...
Searching...
No Matches
DecibelsMethod.h
Go to the documentation of this file.
1#pragma once
2
13 public:
14 struct Output {
15 Output(const double leakRateEstimate, const double annualConsumption)
16 : leakRateEstimate(leakRateEstimate), annualConsumption(annualConsumption) {}
17
18 const double leakRateEstimate, annualConsumption;
19 };
20
36 DecibelsMethod(const double operatingTime, const double linePressure, const double decibels,
37 const double decibelRatingA, const double pressureA, const double firstFlowA,
38 const double secondFlowA, const double decibelRatingB, const double pressureB,
39 const double firstFlowB, const double secondFlowB)
40 : operatingTime(operatingTime), linePressure(linePressure), decibels(decibels), decibelRatingA(decibelRatingA),
41 pressureA(pressureA), firstFlowA(firstFlowA), secondFlowA(secondFlowA), decibelRatingB(decibelRatingB),
42 pressureB(pressureB), firstFlowB(firstFlowB), secondFlowB(secondFlowB) {}
43
48 /*
49 double operatingTime;
50 double linePressure; // X
51 double decibels; // Y
52 double decibelRatingA; // Y1
53 double pressureA; // X1
54 double firstFlowA; // Q11
55 double secondFlowA; // Q21
56 double decibelRatingB; // Y2
57 double pressureB; // X2
58 double firstFlowB; // Q12
59 double secondFlowB; // Q22
60 */
61
62 const double denominator = (pressureB - pressureA) * (decibelRatingB - decibelRatingA);
63 const double leakRateEstimate =
64 ((pressureB - linePressure) * (decibelRatingB - decibels)) / denominator * firstFlowA +
65 ((linePressure - pressureA) * (decibelRatingB - decibels)) / denominator * secondFlowA +
66 ((pressureB - linePressure) * (decibels - decibelRatingA)) / denominator * firstFlowB +
67 ((linePressure - pressureA) * (decibels - decibelRatingA)) / denominator * secondFlowB;
68 const double annualConsumption = (leakRateEstimate * operatingTime * 60) / 1000;
69 DecibelsMethod::Output output(leakRateEstimate, annualConsumption);
70
71 return output;
72 }
73
74 private:
75 double operatingTime;
76 double linePressure; // X
77 double decibels; // Y
78 double decibelRatingA; // Y1
79 double pressureA; // X1
80 double firstFlowA; // Q11
81 double secondFlowA; // Q21
82 double decibelRatingB; // Y2
83 double pressureB; // X2
84 double firstFlowB; // Q12
85 double secondFlowB; // Q22
86};
87
DecibelsMethod(const double operatingTime, const double linePressure, const double decibels, const double decibelRatingA, const double pressureA, const double firstFlowA, const double secondFlowA, const double decibelRatingB, const double pressureB, const double firstFlowB, const double secondFlowB)