dots/config/Typora/draftsRecover/2026-6-1 README 121640.md
afoucaultc c689ac87d0 update
2026-06-05 13:13:58 +02:00

5.8 KiB
Raw Permalink Blame History

Wind turbine gearbox simulator

Static Badge Static Badge Static Badge Static Badge Static Badge

"uncertainties4windturbinegearbox" is a program designed to simulate the uncertainties of a wind turbine gearbox model.

Its main purpose is the comparison between :

  • Monte Carlo method
  • Generalized Polynomial Chaos method (GPC)

With this model, proofs that GPC is a valid method are given, with convergence criteria. The wind turbine gearbox model is a 8-DOF gearbox integrated in time with Newmark's scheme. Uncertain parameters are mapped into uniform distributions in the interval [-1,1].

Dependencies

Development language: Octave 11.1.0 ("some packages" installed, follow first start requirements, follow the error messages) (add graphic_toolkit("gnuplot") in main)

Compatibility: Matlab v2026-a (delete all graphics_toolkit("gnuplot") occurrences in the code)

Optional: Parallel Computing Toolbox (for parfor functions)

Plot engine: Gnuplot 6.0 patchlevel 4

Recommended: Inkscape can be used for graphs that are printed into .svg to be converted into .pdf

Perspectives: the code will probably be transferred into Python, as it is free and open source, and coherence with Python machine learning models

Usage

Run the code

$ git clone https://gitlab.com/afoucaultc/wind_turbine_gearbox
$ cd wind_turbine_gearbox/uncertainties4windturbinegearbox
$ mkdir save
$ mkdir print
$ octave
$ octave:1> run main.m
$ # or run any standalone (starting by a "_")
$ octave:1> run _[standalone].m

Parameters

Stored in parameters.m.

Variable Default Description
N 10000 Number of Monte Carlo draws
pmax 5 Maximum polynomial order for CPG
theta 0.01 Convergence threshold on residual rate
r_uncertainty 20 ±% variation around nominal values
newparams see file Cell array of uncertain variable names and nominal values

Adding or removing uncertain variables : edit newparams array

newparams = {
    'Z2'  , 18  ;   % number of teeth (gear 2)
    'b'   , 0.1 ;   % gear width [m]
    'la1' , 2   ;   % shaft 1 length [m]
    % 'kx', 1e8 ;   % uncomment to include bearing stiffness
};

OUTPUTS :

Figures (exported to print/)

File Content
mean_cpg_r=*_p=*_uncertainty=*.pdf Mean displacement — CPG vs MC (with 95% CI)
var_cpg_r=*_p=*_uncertainty=*.pdf Standard deviation — CPG vs MC (with 95% CI)
modes_cpg_r=*_p=*_uncertainty=*.pdf Modal energy contribution by polynomial order
CPG_MC_time.pdf Evaluation time — CPG vs MC as a function of sample size
CPG_polytime.pdf Training time of CPG as a function of polynomial order
MC_convergence.pdf Convergence of MC mean estimate vs. number of draws

Raw values (saved to save/)

File Content
mc_r=*_N=*.mat Full MC workspace
cpg_r=*_p=*.mat Full CPG workspace at converged order

File tree

## Main process

├── main.m                  # Entry point — runs MC then CPG, produces figures
│   ├── monte_carlo             # Monte Carlo
│   │   ├── method_XiToX.m          # Mapping from normalized ξ ∈ [-1,1]^r to physical X
│   │   └── method_lambda.m         # Batch model evaluation over a parameter grid
│   │       └── model_main.m            # Model used (wind turbine gearbox)
│   │           ├── model_func.m (class)    # Function class for model
│   │           └── model_parameters.m      # Parameters for model
│   └── cpg                     # GPC
│       ├── cpg_polyLegendre.m      # Legendre polynomials up to order pmax
│       ├── cpg_polyChaos.m         # Multi dimensional chao basis (multi index α)
│       ├── cpg_gaussColloc.m       # Tensor of Gauss collocation grid
│       ├── method_XiToX.m          # Mapping from normalized ξ ∈ [-1,1]^r to physical X
│       ├── method_lambda.m         # Batch model evaluation over a parameter grid
│       │   └── model_main.m            # Model used (wind turbine gearbox)
│       │       ├── model_func.m (class)    # Function class for model
│       │       └── model_parameters.m      # Parameters for model
│       ├── cpg_modes.m             # Stochastic mode computation (Φ \ λ)
│       ├── cpg_evaluate.m          # CPG evaluation on random ξ samples from MC
│       └── cpg_errors.m            # Convergence metrics and stopping criterion
└── plot_guerine.m          # Plots : mean, std and modal energy

## Standalone functions

└── _timeaccuracy.m         # Compute and plot : time for MC, GPC, convergence MC

## Rendering folders
├── print 
│   ├── mean_cpg_r=?_p=?_uncertainty=?.pdf (main)
│   ├── var_cpg_r=?_p=?_uncertainty=?.pdf (main)
│   ├── modes_cpg_r=?_p=?_uncertainty=?.pdf (main)
│   ├── CPG_MC_polytime.pdf (_timeaccuracy)
│   ├── MC_convergence.pdf (_timeaccuracy)
│   └── CPG_MC_time.pdf (_timeaccuracy)
└── save
    ├── cpg_r=?_p=?.mat
    └── mc_r=?_N=?.mat

## Others
├── octave-workspace
└── README.md

Calculation machine specification

Hardware: 32Go RAM, Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz, NVIDIA GeForce RTX 4060 OS: Windows 10, version 22H2 (last update 16/05/2023)