@ppramanik62/lab-works
Version:
A comprehensive command-line toolkit for hydraulic turbine calculations, supporting Francis Turbine and Pelton Wheel computations with interactive mode and validation.
76 lines • 2.88 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.calculateFrancis = exports.calculatePower = exports.calculateTorque = exports.calculateParameters = exports.calculateQ = exports.calculateHa = void 0;
/**
* Pure calculation functions for Francis Turbine
*/
const constants_1 = require("../../shared/constants");
/**
* Calculate available head (Ha)
*/
const calculateHa = (pressureGaugeReadingPositive, pressureGaugeReadingNegative) => {
const { vertical_height_pressure_gauge_positive, vertical_height_pressure_gauge_negative } = constants_1.FRANCIS_CONSTANTS;
return (((pressureGaugeReadingPositive + pressureGaugeReadingNegative) * 10000 * constants_1.g) / constants_1.gamma +
(vertical_height_pressure_gauge_positive - vertical_height_pressure_gauge_negative));
};
exports.calculateHa = calculateHa;
/**
* Calculate discharge (Q) iteratively
*/
const calculateQ = (h, H, Va) => {
const { B } = constants_1.FRANCIS_CONSTANTS;
const a = Math.pow(Va, 2);
const b = 2 * constants_1.g;
const part1 = h + a / b;
const part2 = a / b;
const combined = Math.pow(part1, 1.5) - Math.pow(part2, 1.5);
const Q = (2 / 3) * constants_1.Cd * Math.sqrt(2 * constants_1.g) * B * combined;
const Va1 = Q / (B * H);
return { Q: Number(Q.toFixed(6)), Va1 };
};
exports.calculateQ = calculateQ;
/**
* Calculate performance parameters
*/
const calculateParameters = (N, Q, T, Pt, Ha) => {
const N1 = N / Math.sqrt(Ha);
const Q1 = Q / Math.sqrt(Ha);
const T1 = T / Ha;
const Pt1 = Pt / Math.pow(Ha, 1.5);
const Pa = constants_1.gamma * Q * Ha;
const eta = (Pt / Pa) * 100;
return { N1, Q1, T1, Pt1, Pa, eta };
};
exports.calculateParameters = calculateParameters;
/**
* Calculate torque from weights and RPM
*/
const calculateTorque = (w1, w2) => {
const { r_brake_wheel, r_rope } = constants_1.FRANCIS_CONSTANTS;
return (w1 - w2) * constants_1.g * (r_brake_wheel + r_rope);
};
exports.calculateTorque = calculateTorque;
/**
* Calculate power from torque and RPM
*/
const calculatePower = (N, T) => {
return (2 * Math.PI * N * T) / 60;
};
exports.calculatePower = calculatePower;
/**
* Main calculation function
*/
const calculateFrancis = (ppg, npg, w1, w2, rpm) => {
const { hf, hi, h1 } = constants_1.FRANCIS_CONSTANTS;
const h = hf - hi;
const H = h1 + hf - hi;
const T = (0, exports.calculateTorque)(w1, w2);
const Pt = (0, exports.calculatePower)(rpm, T);
const Ha = (0, exports.calculateHa)(ppg, npg);
const { Va1 } = (0, exports.calculateQ)(h, H, 0);
const { Q } = (0, exports.calculateQ)(h, H, Va1);
const { N1, Q1, T1, Pt1, Pa, eta } = (0, exports.calculateParameters)(rpm, Q, T, Pt, Ha);
return { Ha, N1, Q1, T1, Pt1, Pa, eta };
};
exports.calculateFrancis = calculateFrancis;
//# sourceMappingURL=formulas.js.map