Hydraulic sizing · CAD & structural verification · CFD · electromechanical conversion · additive-manufacturing prototyping · industrialisation
This repository documents the end-to-end engineering design of a compact axial (Kaplan-type) hydraulic turbine, carried out as a multidisciplinary study (Bureau d'Etudes) at Arts et Metiers ParisTech (ENSAM). The project follows a single design thread from first principles to an industrial deployment scenario:
- Hydraulic preliminary sizing in MATLAB, using similarity parameters and a digitised Cordier diagram.
- Blade-row and CAD modelling in CATIA V5, with a preliminary finite-element check of the blade root.
- CFD analysis in STAR-CCM+ (moving-reference-frame, steady segregated flow) to extract power, efficiency, and cavitation-risk trends.
- Electromechanical conversion: a surface-mounted permanent-magnet synchronous generator pre-sized analytically and cross-checked with FEMM/OctaveFEMM, driving a PWM voltage-source converter modelled in SIMBA.
- Additive-manufacturing prototyping (FFF, PLA) and wind-tunnel testing as a reduced-scale aerodynamic analogue of the hydraulic runner.
- Industrialisation study: production planning, make-or-buy, location strategy, and a discounted business case for a 167-unit modular fleet.
The full write-up is included in docs/Compact_Axial_Hydraulic_Turbine_Report.pdf.
This was a team project (group GIE2-ED2, Semester 7): Dev Kumar, Thien Ho, Seyf Daab, Wilhem Abboura, supervised by Christophe Sarraf, Florent Ravelet, Pascal Caestecker, and Jean-Frederic Charpentier. This repository packages the MATLAB, FEMM, and SIMBA source files together with the consolidated report for portfolio purposes; the FEMM base template (
electromagnetic/femm) was originally provided by J.-F. Charpentier and parameterised here for the project's operating point.
| Stage | Metric | Value |
|---|---|---|
| Hydraulic design point | Speed / head / flow rate | 1500 rpm · 3.8 m · 0.132 m³/s |
| Runner envelope | Outer / hub radius | 103 mm / 39.1 mm |
| CFD baseline mesh | Cells / faces / vertices | 61,518 / 279,251 / 187,548 |
| CFD best operating point | Mechanical power @ flow rate | ≈ 1760 W @ 0.144 m³/s |
| Generator design torque | Electromagnetic torque | 152 N·m |
| Prototype (wind-tunnel analogue) | Max. power coefficient / efficiency | Cp ≈ 0.239 / η ≈ 0.56 |
| Industrial scenario | Fleet size / annual output | 167 units / ≈ 2 TWh/yr |
| Business case | ROI / payback | 21.5% / 2.4 years |
flowchart LR
A[Cordier diagram\nsimilarity sizing] --> B[Velocity triangles\n+ blade mean line]
B --> C[Modified NACA\nthickness law]
C --> D[CATIA V5\nsurface + solid CAD]
D --> E[Blade root FEA\nscreening]
D --> F[STAR-CCM+ CFD\nmoving reference frame]
F --> G[PMSM generator\nsizing + FEMM check]
G --> H[PWM converter\n+ d-q current control\n SIMBA]
D --> I[FFF prototype\n+ wind-tunnel test]
F --> J[Industrialisation\n+ business case]
The runner is sized from the engineering specific speed and the Cordier diagram:
Nsq = N * sqrt(qv) / H^0.75 (specific speed)
Omega = pi * Nsq / (30 * g^0.75) (dimensionless specific angular velocity)
with the design point N = 1500 rpm, Nsq = 200, H = 3.8 m, qv = 0.132 m³/s, giving an outer radius Re = 0.103 m and a hub radius Ri = 0.039 m (hub-to-tip ratio 0.38).
Local velocity triangles then follow from the Euler turbine equation:
U(r) = omega * r
Cu2_th(r) = -g*H / U(r)
beta_1(r) = atan( U(r) / Ca )
beta_2(r) = atan( (U(r) - Cu2(r)) / Ca )
The generator's average electromagnetic torque follows from the fundamental air-gap flux density and the linear current loading:
<Cem> = sqrt(2) * B1 * A * V * cos(Psi) (V = bore volume, A = linear current loading)
which is maximised for Ψ = 0 (current aligned with the EMF). The associated PWM converter is analysed for carrier-frequency sensitivity and closed-loop d-q current control.
.
├── docs/
│ └── Compact_Axial_Hydraulic_Turbine_Report.pdf # full write-up
├── matlab/
│ ├── hydraulic_sizing/ # Cordier sizing, velocity triangles, blade geometry, CATIA export
│ └── data_reduction/ # test-bench characteristic curves, affinity-law scaling
├── electromagnetic/
│ └── femm/ # OctaveFEMM parametric PMSM field/flux/inductance script
├── simulink_simba/ # PWM converter + d-q current-control model (SIMBA)
├── cad/ # STEP fluid-domain geometry used for the CFD study
├── data/ # test-bench characteristic-curve dataset (multi-speed)
└── assets/ # figures used in this README
| Domain | Tool |
|---|---|
| Hydraulic sizing, data reduction | MATLAB |
| Blade-section aerodynamics | XFoil |
| 3-D CAD, surfacing, structural screening | CATIA V5 (Generative Shape Design, Part Design, FEA) |
| CFD | Simcenter STAR-CCM+ |
| Electromagnetic field solving | FEMM / OctaveFEMM |
| Power electronics & control | SIMBA |
| Additive manufacturing | PrusaSlicer, FFF (PLA) |
| Experimental validation | Recirculating wind tunnel, 6-component balance |
matlab/hydraulic_sizing/main_turbine_sizing.m % full sizing pipeline + CATIA point-cloud export
matlab/hydraulic_sizing/fit_naca_thickness.m % modified NACA thickness-law identification (requires an XFoil point-save file)
matlab/hydraulic_sizing/cordier_digitisation.m % Cordier-diagram specific-radius lookup
matlab/data_reduction/characteristic_curve_reduction.m % reduces data/RIM_test_bench_data.xlsx into head/efficiency curves and BEPs
matlab/data_reduction/affinity_law_scaling.m % turbine affinity-law speed scaling example
The FEMM script (electromagnetic/femm/pmsm_femm_field_analysis.m) requires a local FEMM installation and the OctaveFEMM/MATLAB toolbox. Set the FEMM_MFILES environment variable to FEMM's mfiles directory before running; the script no longer assumes a machine-specific Windows path or modifies MATLAB's global path.
The SIMBA model (simulink_simba/pwm_converter_speed_control.jsimba) can be opened directly in SIMBA.
This project is released under the MIT License.
Dev Kumar · dev-kumar.com · contact@dev-kumar.com




