8.1 KiB
Author: Antoine Foucault-Castelli Date: 17/03/2026 Bibliography: @karmiFiabiliteOptimisationSystemes @ghorbelEffectBrakeLocation2020a @zhengAnalyticalApproachMesh2022 Version: 4.0
Gearbox simulation
Structure
main.m
func.m
time_sampling
inertia
gearbox_geometry
mesh_stiffness
wind_excitation
mass_matrix
stiffness_matrix
stiffness_update
damping_matrix
forces_matrix
initialization
newmark
parameters.m
display.m
disp_xy(t,x,i)
speed_xy(t,v,i)
acc_xy(t,v,i)
disp_theta(t,x,i)
speed_theta(t,v,i)
acc_theta(t,a,i)
mesh_stiffness(t,k_var,k_mean,i)
taero(t,T_aero,i)
rms_on_x(x)
spectral_on_x(x,i,tf,dt)
plot_x(t,x,i)
only_display.m
display_update.m
main.m is the launcher for the full code compilation
func is the function class, containing every function used in the code
parameters is the model parameters document
display is the displayer for figures
only_display to skip non-needed full compilation
display_update to update a single graph if needed
How does it work ?
For Matlab under windows : open matlab and launch main.m
Caution
remove
graphics_toolkit("gnuplot")which is only useful for Octave visualization
For Octave/Linux :
cd [path_to_cloned]/code/versions/[current_version]/
octave
>>> run main.m
>>>
Informations
- Verified code with base code and paper
- Implemented wind excitation
- Implemented Ghorbel parameters
- [~] Add varying output torque depending on number of tooth in contact ?
- [~] add brake ?
- [~] Variation of C ?
- [~] ODE45 ?
- Displays from last version (in class)
- New mesh stiffness variation model (trapezoidal)
- Print in pdf
- Errors/defects implementation
- profile error
- assembly defect (change on gear stiffness)
- README
- Maths
- Source(s)
- Random models implementation
- Display
- time response on a2
- speed response
- x movement (vs y movement ?)
- RMS STD Kurtosis
- Tests
- different speed
- different blade radii
Maths
The model is represented by two 4DDL shafts in a gear connection : x and y are free at the pinion, \theta is free at both ends of the shaft (input/output is \theta_{ii} and meshing rotation is \theta_{ij}).
Parameters
Energy
\frac{\partial Ep}{\partial q_i}+
\frac{d}{dt}\left(\frac{Ec}{\dot{q}i}\right)-
\frac{\partial Ec}{\partial q_i}+
\frac{\partial D}{\partial \dot{q}i}
=\frac{W}{\partial q_i}
\
Ec = \frac{1}{2}m_1*\dot{x}1^2+
\frac{1}{2}m_1*\dot{y}1^2+
\frac{1}{2}I{11}\dot{\theta}{11}^2+
\frac{1}{2}I{12}\dot{\theta}{12}^2+
\frac{1}{2}m_2*\dot{x_2}^2+
\frac{1}{2}m_2*\dot{y_2}^2+
\frac{1}{2}I_{22}\dot{\theta}{22}^2+
\frac{1}{2}I{21}\dot{\theta}{21}^2
\
Ep = \frac{1}{2}k{x_1}x_{1}^2+
\frac{1}{2}k_{y_1}y_{1}^2+
\frac{1}{2}k_{\theta_1}(\theta_{11}-\theta_{12})^2+
\frac{1}{2}k_{x_2}x_{2}^2+
\frac{1}{2}k_{y_2}y_{2}^2+
\frac{1}{2}k_{\theta_2}(\theta_{21}-\theta_{22})^2+
\frac{1}{2}K_e(t)\delta_1^2(t)
Equations of movement
Ep and Ec are separated between the two shaft (1 and 2)
\begin{cases}
&\frac{\partial Ep_1}{\partial x_1}+\frac{d}{dt}\left(\frac{\partial Ec_1}{\partial \dot{x}1}\right)=m_1\ddot{x}1+k{x1}x_1+sin(\alpha)K_e(t)\delta 1(t)=0 \
&\frac{\partial Ep_1}{\partial y_1}+\frac{d}{dt}\left(\frac{\partial Ec_1}{\partial \dot{y}1}\right)=m_1\ddot{y}1+k{y1}y_1+cos(\alpha)K_e(t)\delta 1(t)=0 \
&\frac{\partial Ep_1}{\partial \theta{11}}+\frac{d}{dt}\left(\frac{\partial Ec_1}{\partial \dot{\theta}{11}}\right)=I{11}\ddot{\theta}{11}+k_{\theta 1}(\theta_{11}-\theta_{12})=Cm \
&\frac{\partial Ep_1}{\partial \theta_{12}}+\frac{d}{dt}\left(\frac{\partial Ec_1}{\partial \dot{\theta}{12}}\right)=I{12}\ddot{\theta}{12}+k{\theta 1}(\theta_{12}-\theta_{11})+K_e(t)r_{b12}\delta_1(t)=0 \
&\frac{\partial Ep_1}{\partial x_2}+\frac{d}{dt}\left(\frac{\partial Ec_2}{\partial \dot{x}2}\right)=m_2\ddot{x}2+k{x2}x_2-sin(\alpha)K_e(t)\delta 1(t)=0 \
&\frac{\partial Ep_1}{\partial y_2}+\frac{d}{dt}\left(\frac{\partial Ec_2}{\partial \dot{y}2}\right)=m_2\ddot{y}2+k{y2}y_2-cos(\alpha)K_e(t)\delta 1(t)=0 \
&\frac{\partial Ep_1}{\partial \theta{22}}+\frac{d}{dt}\left(\frac{\partial Ec_2}{\partial \dot{\theta}{22}}\right)=I{22}\ddot{\theta}{22}-k_{\theta 2}(\theta_{21}-\theta_{22})=-Cr \
&\frac{\partial Ep_1}{\partial \theta_{21}}+\frac{d}{dt}\left(\frac{\partial Ec_2}{\partial \dot{\theta}{21}}\right)=I{21}\ddot{\theta}{21}-k{\theta 2}(\theta_{21}-\theta_{22})+K_e(t)r_{b21}\delta_1(t)=0
\end{cases}
With \delta_i(t)=(x_1-x_2)sin(\alpha)+(y_1-y_2)cos(\alpha)+\theta_{12}r_{b1}+\theta_{21}r_{b2} and r_{bij} the base radius of pinions, K_e is the varying meshing stiffness, mass m_i = \pi r^2_{i}\rho for both pinions, and I_{ij} = \frac{1}{2}m_{ij}r_{ij}^2 for pinions and input/output inertia.
Matrices
Equation to solve :
[M]{\ddot{q}}+C{\dot{q}}+([Ks]+[K(t)]){q}={F_0} \
{q}={x_1,y_1,\theta_{11},\theta_{12},x_2,y_2,\theta_{22},\theta_{21}}
Mass matrix :
M =
\begin{bmatrix}
m_1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \
0 & m_1 & 0 & 0 & 0 & 0 & 0 & 0 \
0 & 0 & I_{11} & 0 & 0 & 0 & 0 & 0 \
0 & 0 & 0 & I_{12} & 0 & 0 & 0 & 0 \
0 & 0 & 0 & 0 & m_2 & 0 & 0 & 0 \
0 & 0 & 0 & 0 & 0 & m_2 & 0 & 0 \
0 & 0 & 0 & 0 & 0 & 0 & I_{22} & 0 \
0 & 0 & 0 & 0 & 0 & 0 & 0 & I_{21} \
\end{bmatrix} \
With m_1 mass of shaft 1 and m_2 mass of shaft 2
Variable stiffness matrix
K(t)= K_e(t)
\begin{bmatrix}
sin(\alpha)^2 & sin(\alpha).cos(\alpha) & 0 & r_1.sin(\alpha) & -sin(\alpha)^2 & -sin(\alpha).cos(\alpha) & 0 & r_2.sin(\alpha) \
sin(\alpha).cos(\alpha) & cos(\alpha)^2 & 0 & r_1.cos(\alpha) & -sin(\alpha).cos(\alpha) & -cos(\alpha)^2 & 0 & r_2.cos(\alpha) \
0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \
r_1.sin(\alpha) & r_1.cos(\alpha) & 0 & r_1^2 & -r_1.sin(\alpha) & -r_1.cos(\alpha) & 0 & r_1.r_2 \
-sin(\alpha)^2 & -sin(\alpha).cos(\alpha) & 0 & -r_1.sin(\alpha) & sin(\alpha)^2 & sin(\alpha).cos(\alpha) & 0 & -r_2.sin(\alpha) \
-sin(\alpha).cos(\alpha) & -cos(\alpha)^2 & 0 & -r_1.cos(\alpha) & sin(\alpha).cos(\alpha) & cos(\alpha)^2 & 0 & -r_2.cos(\alpha) \
0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \
r_2.sin(\alpha) & r_2.cos(\alpha) & 0 & r_1.r_2 & -r_2.sin(\alpha) & -r_2.cos(\alpha) & 0 & r_2^2 \
\end{bmatrix}
Note
In matlab, cos and sin terms will be noted as
s_i, for visual simplification
Constant stiffness matrix
Ks=
\begin{bmatrix}
k_{x1} & 0 & 0 & 0 & 0 & 0 & 0 & 0 \
0 & k_{y1} & 0 & 0 & 0 & 0 & 0 & 0 \
0 & 0 & k_{\theta1}& -k_{\theta1} & 0 & 0 & 0 & 0 \
0 & 0 & -k_{\theta1} & k_{\theta1} & 0 & 0 & 0 & 0 \
0 & 0 & 0 & 0 & k_{x1} & 0 & 0 & 0 \
0 & 0 & 0 & 0 & 0 & k_{y1} & 0 & 0 \
0 & 0 & 0 & 0 & 0 & 0 & k_{\theta2} & -k_{\theta2} \
0 & 0 & 0 & 0 & 0 & 0 & -k_{\theta2} & k_{\theta2} \
\end{bmatrix}
Damping matrix
C = \eta M+\beta K_{mean}
Forces
F =
\begin{bmatrix}
za
\end{bmatrix}
TO FIX
[!ATTENTION] ...
Machine specifications
Example of computational time : 44sec for fs=2500 / n_periods = 10
-`
.o+`
`ooo/ OS: Arch Linux x86_64
`+oooo: Host: 20EV000UFR ThinkPad E560
`+oooooo: Kernel: 6.19.8-arch1-1
-+oooooo+: Shell: zsh 5.9
`/:-:++oooo+: Terminal: kitty
`/++++/+++++++: CPU: Intel i5-6200U (4) @ 2.300GHz
`/++++++++++++++: GPU: Intel Skylake-U GT2 [HD Graphics 520]
`/+++ooooooooooooo/` Memory: 1703MiB / 3792MiB
./ooosssso++osssssso+`
.oossssso-````/ossssss+`
-osssssso. :ssssssso.
:osssssss/ osssso+++.
/ossssssss/ +ssssooo/-
`/ossssso+/:- -:/+osssso+-
`+sso+:-` `.-/+oso:
`++:. `-/+/
.` `/