246 lines
8.2 KiB
Markdown
246 lines
8.2 KiB
Markdown
---
|
|
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
|
|
|
|
> [!WARNING]
|
|
> remove `graphics_toolkit("gnuplot")` which is only useful for Octave visualization
|
|
|
|
**For Octave/Linux :**
|
|
|
|
```bash
|
|
cd [path_to_cloned]/code/versions/[current_version]/
|
|
octave
|
|
>>> run main.m
|
|
>>>
|
|
```
|
|
|
|
## Informations
|
|
- [x] Verified code with base code and paper
|
|
- [x] Implemented wind excitation
|
|
- [x] Implemented Ghorbel parameters
|
|
- [~] Add varying output torque depending on number of tooth in contact ?
|
|
- [~] add brake ?
|
|
- [~] Variation of C ?
|
|
- [~] ODE45 ?
|
|
- [x] Displays from last version (in class)
|
|
- [x] New mesh stiffness variation model (trapezoidal)
|
|
- [x] Print in pdf
|
|
- [ ] Errors/defects implementation
|
|
- [ ] profile error
|
|
- [ ] assembly defect (change on gear stiffness)
|
|
- [ ] README
|
|
- [x] Maths
|
|
- [ ] Source(s)
|
|
- [ ] Random models implementation
|
|
- [x] Display
|
|
- [x] time response on a2
|
|
- [x] speed response
|
|
- [x] x movement (vs y movement ?)
|
|
- [x] 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 equations
|
|
|
|
$$
|
|
\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 mesh 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}
|
|
0 \\ 0 \\ T_{in} \\ 0 \\ 0\\ 0\\ T_{out}\\ 0
|
|
\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:
|
|
`++:. `-/+/
|
|
.` `/
|
|
```
|