UNPKG

@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
"use strict"; 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