first commit
This commit is contained in:
commit
205faf4224
5471 changed files with 973850 additions and 0 deletions
309
config/Typora/draftsRecover/2026-3-19 .typora_readme 122640.md
Normal file
309
config/Typora/draftsRecover/2026-3-19 .typora_readme 122640.md
Normal file
|
|
@ -0,0 +1,309 @@
|
|||
---
|
||||
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
|
||||
- [ ] Images
|
||||
- [ ] 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
|
||||
- [ ] Auto speed initialization
|
||||
- [ ] 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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ------------------------------------------------ | --------- | --------------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : $k_x=k_{x_1}=k_{x_2}$ | 1e8 | N/m |
|
||||
| Flexion y : $k_y=k_{y_1}=k_{y_2}$ | 1e8 | N/m |
|
||||
| Torsion z : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | 1e5 | N/m |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related $\beta$ | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | 6 | m |
|
||||
| Air density $\rho_{air}$ | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | 10 | m/s |
|
||||
| Fluctuating external torque $T_{fluct}$ | 50 | N |
|
||||
| Fluctuating external frequency $f_{fluct}$ | 6 | Hz |
|
||||
| Performance efficiency $cp$ | 16/27 | |
|
||||
|
||||
### 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**
|
||||
|
||||
$$
|
||||
\frac{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**
|
||||
|
||||
Damping matrix is : $C = \eta M+\beta K_{mean}$
|
||||
|
||||
**Forces**
|
||||
|
||||
$$
|
||||
F =
|
||||
\begin{bmatrix}
|
||||
0 \\ 0 \\ T_{in} \\ 0 \\ 0\\ 0\\ T_{out}\\ 0
|
||||
\end{bmatrix}
|
||||
$$
|
||||
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal between a low value ($=k_{mesh_{mean}}$ for one tooth in contact) and its double value as a high value. Length of both phase is given by $T_{high}=(\varepsilon-1)T_{mesh}$ and $T_{low}=(2-\varepsilon)T_{mesh}$. 10% of the start and of the end of the “high” phase is a linear slope from low value to high value.
|
||||
|
||||
> [!NOTE]
|
||||
> $T_{mesh}=1/f_{mesh}=1/(Z1*N1/60)$
|
||||
> $\varepsilon$ is an approximation using the following formula :
|
||||
> $$
|
||||
> c_1=\frac{1+\frac{1}{Z1}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z1^2}+\frac{1}{Z1}}\right)\right)} \\
|
||||
> c_1=\frac{1+\frac{1}{Z2}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z2^2}+\frac{1}{Z2}}\right)\right)} \\
|
||||
> c_{12}=c_1+c_2 \approx \varepsilon
|
||||
> $$
|
||||
|
||||
|
||||
## Model
|
||||
|
||||
**Time :** time is sampled on the $T_{mesh}$, with $fs$ the number of points for each period, and $n_{periods}$ the number of periods calculated. The number of points is $fs\times n_{periods}$.
|
||||
|
||||
**Speed :** rotational speed is initialized at its “stable” value.
|
||||
|
||||
> if no automatic implementation, it has to be done “by hand” by executing the program once, get the speeds after the transient zone, and put them by hand in “initialization” source code (`func.m`)
|
||||
|
||||
**Initialization :** everything is set at 0 for initialization (except speed)
|
||||
|
||||
**Model :** a basic Newmark scheme is used to compute the model over time
|
||||
|
||||
## TO FIX
|
||||
|
||||
> [!CAUTION]
|
||||
> ...
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
246
config/Typora/draftsRecover/2026-3-19 README 104658.md
Normal file
246
config/Typora/draftsRecover/2026-3-19 README 104658.md
Normal file
|
|
@ -0,0 +1,246 @@
|
|||
---
|
||||
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 :**
|
||||
```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
|
||||
- [ ] 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
|
||||
|
||||
$$
|
||||
\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 = \bma{0}
|
||||
$$
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
249
config/Typora/draftsRecover/2026-3-19 README 104724.md
Normal file
249
config/Typora/draftsRecover/2026-3-19 README 104724.md
Normal file
|
|
@ -0,0 +1,249 @@
|
|||
---
|
||||
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 :**
|
||||
```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
|
||||
- [ ] 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
|
||||
|
||||
$$
|
||||
\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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
249
config/Typora/draftsRecover/2026-3-19 README 104753.md
Normal file
249
config/Typora/draftsRecover/2026-3-19 README 104753.md
Normal file
|
|
@ -0,0 +1,249 @@
|
|||
---
|
||||
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 :**
|
||||
```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
|
||||
- [ ] 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
|
||||
|
||||
$$
|
||||
\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}
|
||||
0 & 0 & T_{in} & 0 & 0& 0& 0& 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
249
config/Typora/draftsRecover/2026-3-19 README 104825.md
Normal file
249
config/Typora/draftsRecover/2026-3-19 README 104825.md
Normal file
|
|
@ -0,0 +1,249 @@
|
|||
---
|
||||
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 :**
|
||||
```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
|
||||
- [ ] 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
|
||||
|
||||
$$
|
||||
\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}
|
||||
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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
249
config/Typora/draftsRecover/2026-3-19 README 104843.md
Normal file
249
config/Typora/draftsRecover/2026-3-19 README 104843.md
Normal file
|
|
@ -0,0 +1,249 @@
|
|||
---
|
||||
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 :**
|
||||
```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
|
||||
- [ ] 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 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
250
config/Typora/draftsRecover/2026-3-19 README 105011.md
Normal file
250
config/Typora/draftsRecover/2026-3-19 README 105011.md
Normal file
|
|
@ -0,0 +1,250 @@
|
|||
---
|
||||
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
|
||||
|
||||
> [!ATT]
|
||||
> 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
|
||||
- [ ] 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
246
config/Typora/draftsRecover/2026-3-19 README 105400.md
Normal file
246
config/Typora/draftsRecover/2026-3-19 README 105400.md
Normal file
|
|
@ -0,0 +1,246 @@
|
|||
---
|
||||
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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
286
config/Typora/draftsRecover/2026-3-19 README 105540.md
Normal file
286
config/Typora/draftsRecover/2026-3-19 README 105540.md
Normal file
|
|
@ -0,0 +1,286 @@
|
|||
---
|
||||
Author: Antoine Foucault-Castelli
|
||||
Date: 17/03/2026
|
||||
Bibliography: @karmiFiabiliteOptimisationSystemes @ghorbelEffectBrakeLocation2020a @zhengAnalyticalApproachMesh2022
|
||||
Version: 4.0
|
||||
---
|
||||
| Parameter | Value |
|
||||
| ---------------- | ----- |
|
||||
| Newmark $\gamma$ | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
|
||||
# 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
286
config/Typora/draftsRecover/2026-3-19 README 105607.md
Normal file
286
config/Typora/draftsRecover/2026-3-19 README 105607.md
Normal file
|
|
@ -0,0 +1,286 @@
|
|||
---
|
||||
Author: Antoine Foucault-Castelli
|
||||
Date: 17/03/2026
|
||||
Bibliography: @karmiFiabiliteOptimisationSystemes @ghorbelEffectBrakeLocation2020a @zhengAnalyticalApproachMesh2022
|
||||
Version: 4.0
|
||||
---
|
||||
| Parameter | Value |
|
||||
| ---------------- | ----- |
|
||||
| Newmark $\gamma$ | |
|
||||
| Newmark $\beta$ | |
|
||||
| $Z1$ | |
|
||||
| $Z2$ | |
|
||||
| $m_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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
286
config/Typora/draftsRecover/2026-3-19 README 105638.md
Normal file
286
config/Typora/draftsRecover/2026-3-19 README 105638.md
Normal file
|
|
@ -0,0 +1,286 @@
|
|||
---
|
||||
Author: Antoine Foucault-Castelli
|
||||
Date: 17/03/2026
|
||||
Bibliography: @karmiFiabiliteOptimisationSystemes @ghorbelEffectBrakeLocation2020a @zhengAnalyticalApproachMesh2022
|
||||
Version: 4.0
|
||||
---
|
||||
| Parameter | Value |
|
||||
| ---------------- | ----- |
|
||||
| Newmark $\gamma$ | |
|
||||
| Newmark $\beta$ | |
|
||||
| **Gear** | |
|
||||
| $Z1$ | |
|
||||
| $Z2$ | |
|
||||
| $m_0$ | |
|
||||
| $b$ | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
|
||||
# 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
286
config/Typora/draftsRecover/2026-3-19 README 105713.md
Normal file
286
config/Typora/draftsRecover/2026-3-19 README 105713.md
Normal file
|
|
@ -0,0 +1,286 @@
|
|||
---
|
||||
Author: Antoine Foucault-Castelli
|
||||
Date: 17/03/2026
|
||||
Bibliography: @karmiFiabiliteOptimisationSystemes @ghorbelEffectBrakeLocation2020a @zhengAnalyticalApproachMesh2022
|
||||
Version: 4.0
|
||||
---
|
||||
| Newmark | Value |
|
||||
| ---------------- | ----- |
|
||||
| Newmark $\gamma$ | |
|
||||
| Newmark $\beta$ | |
|
||||
| **Gears** | |
|
||||
| $Z1$ | |
|
||||
| $Z2$ | |
|
||||
| $m_0$ | |
|
||||
| $b$ | |
|
||||
| $d_{i1}$ | |
|
||||
| $d_{i_2}$ | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
|
||||
# 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
286
config/Typora/draftsRecover/2026-3-19 README 105746.md
Normal file
286
config/Typora/draftsRecover/2026-3-19 README 105746.md
Normal file
|
|
@ -0,0 +1,286 @@
|
|||
---
|
||||
Author: Antoine Foucault-Castelli
|
||||
Date: 17/03/2026
|
||||
Bibliography: @karmiFiabiliteOptimisationSystemes @ghorbelEffectBrakeLocation2020a @zhengAnalyticalApproachMesh2022
|
||||
Version: 4.0
|
||||
---
|
||||
| Newmark | Value |
|
||||
| ---------------- | ----- |
|
||||
| Newmark $\gamma$ | |
|
||||
| Newmark $\beta$ | |
|
||||
| **Gears** | |
|
||||
| $Z1$ | |
|
||||
| $Z2$ | |
|
||||
| $m_0$ | |
|
||||
| $b$ | |
|
||||
| $d_{i1}$ | |
|
||||
| $d_{i_2}$ | |
|
||||
| $N_1$ | |
|
||||
| $\alpha$ | |
|
||||
| $\rho_{steel}$ | |
|
||||
| **Masses** | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
|
||||
# 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
286
config/Typora/draftsRecover/2026-3-19 README 105811.md
Normal file
286
config/Typora/draftsRecover/2026-3-19 README 105811.md
Normal file
|
|
@ -0,0 +1,286 @@
|
|||
---
|
||||
Author: Antoine Foucault-Castelli
|
||||
Date: 17/03/2026
|
||||
Bibliography: @karmiFiabiliteOptimisationSystemes @ghorbelEffectBrakeLocation2020a @zhengAnalyticalApproachMesh2022
|
||||
Version: 4.0
|
||||
---
|
||||
| Newmark | Value |
|
||||
| ---------------- | --------- |
|
||||
| Newmark $\gamma$ | |
|
||||
| Newmark $\beta$ | |
|
||||
| **Gears** | **Value** |
|
||||
| $Z1$ | |
|
||||
| $Z2$ | |
|
||||
| $m_0$ | |
|
||||
| $b$ | |
|
||||
| $d_{i1}$ | |
|
||||
| $d_{i_2}$ | |
|
||||
| $N_1$ | |
|
||||
| $\alpha$ | |
|
||||
| $\rho_{steel}$ | |
|
||||
| **Masses** | **Value** |
|
||||
| $$ | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
|
||||
# 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
286
config/Typora/draftsRecover/2026-3-19 README 105824.md
Normal file
286
config/Typora/draftsRecover/2026-3-19 README 105824.md
Normal file
|
|
@ -0,0 +1,286 @@
|
|||
---
|
||||
Author: Antoine Foucault-Castelli
|
||||
Date: 17/03/2026
|
||||
Bibliography: @karmiFiabiliteOptimisationSystemes @ghorbelEffectBrakeLocation2020a @zhengAnalyticalApproachMesh2022
|
||||
Version: 4.0
|
||||
---
|
||||
| Newmark | Value |
|
||||
| ---------------- | --------- |
|
||||
| Newmark $\gamma$ | |
|
||||
| Newmark $\beta$ | |
|
||||
| **Gears** | **Value** |
|
||||
| $Z1$ | |
|
||||
| $Z2$ | |
|
||||
| $m_0$ | |
|
||||
| $b$ | |
|
||||
| $d_{i1}$ | |
|
||||
| $d_{i_2}$ | |
|
||||
| $N_1$ | |
|
||||
| $\alpha$ | |
|
||||
| $\rho_{steel}$ | |
|
||||
| **Masses** | **Value** |
|
||||
| $m_{input}$ | |
|
||||
| $m_{pinion}$ | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
|
||||
# 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
286
config/Typora/draftsRecover/2026-3-19 README 105845.md
Normal file
286
config/Typora/draftsRecover/2026-3-19 README 105845.md
Normal file
|
|
@ -0,0 +1,286 @@
|
|||
---
|
||||
Author: Antoine Foucault-Castelli
|
||||
Date: 17/03/2026
|
||||
Bibliography: @karmiFiabiliteOptimisationSystemes @ghorbelEffectBrakeLocation2020a @zhengAnalyticalApproachMesh2022
|
||||
Version: 4.0
|
||||
---
|
||||
| Newmark | Value |
|
||||
| ---------------- | --------- |
|
||||
| Newmark $\gamma$ | |
|
||||
| Newmark $\beta$ | |
|
||||
| **Gears** | **Value** |
|
||||
| $Z1$ | |
|
||||
| $Z2$ | |
|
||||
| $m_0$ | |
|
||||
| $b$ | |
|
||||
| $d_{i1}$ | |
|
||||
| $d_{i_2}$ | |
|
||||
| $N_1$ | |
|
||||
| $\alpha$ | |
|
||||
| $\rho_{steel}$ | |
|
||||
| **Masses** | **Value** |
|
||||
| $m_{in}$ | |
|
||||
| $m_{12}$ | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
|
||||
# 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
286
config/Typora/draftsRecover/2026-3-19 README 105912.md
Normal file
286
config/Typora/draftsRecover/2026-3-19 README 105912.md
Normal file
|
|
@ -0,0 +1,286 @@
|
|||
---
|
||||
Author: Antoine Foucault-Castelli
|
||||
Date: 17/03/2026
|
||||
Bibliography: @karmiFiabiliteOptimisationSystemes @ghorbelEffectBrakeLocation2020a @zhengAnalyticalApproachMesh2022
|
||||
Version: 4.0
|
||||
---
|
||||
| Newmark | Value |
|
||||
| ---------------- | --------- |
|
||||
| Newmark $\gamma$ | |
|
||||
| Newmark $\beta$ | |
|
||||
| **Gears** | **Value** |
|
||||
| $Z1$ | |
|
||||
| $Z2$ | |
|
||||
| $m_0$ | |
|
||||
| $b$ | |
|
||||
| $d_{i1}$ | |
|
||||
| $d_{i_2}$ | |
|
||||
| $N_1$ | |
|
||||
| $\alpha$ | |
|
||||
| $\rho_{steel}$ | |
|
||||
| **Masses** | **Value** |
|
||||
| $m_{in}$ | |
|
||||
| $m_{pinion12}$ | |
|
||||
| $m_{pinion21}$ | |
|
||||
| $m_{pinio}$ | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
|
||||
# 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
286
config/Typora/draftsRecover/2026-3-19 README 105943.md
Normal file
286
config/Typora/draftsRecover/2026-3-19 README 105943.md
Normal file
|
|
@ -0,0 +1,286 @@
|
|||
---
|
||||
Author: Antoine Foucault-Castelli
|
||||
Date: 17/03/2026
|
||||
Bibliography: @karmiFiabiliteOptimisationSystemes @ghorbelEffectBrakeLocation2020a @zhengAnalyticalApproachMesh2022
|
||||
Version: 4.0
|
||||
---
|
||||
| Newmark | Value |
|
||||
| ---------------- | --------- |
|
||||
| Newmark $\gamma$ | |
|
||||
| Newmark $\beta$ | |
|
||||
| **Gears** | **Value** |
|
||||
| $Z1$ | |
|
||||
| $Z2$ | |
|
||||
| $m_0$ | |
|
||||
| $b$ | |
|
||||
| $d_{i1}$ | |
|
||||
| $d_{i_2}$ | |
|
||||
| $N_1$ | |
|
||||
| $\alpha$ | |
|
||||
| $\rho_{steel}$ | |
|
||||
| **Masses** | **Value** |
|
||||
| $m_{in}$ | |
|
||||
| $m_{pinion12}$ | |
|
||||
| $m_{pinion21}$ | |
|
||||
| $m_{out}$ | |
|
||||
| **Stiffness** | |
|
||||
| $k_x=k_{x}$ | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
|
||||
# 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
286
config/Typora/draftsRecover/2026-3-19 README 110000.md
Normal file
286
config/Typora/draftsRecover/2026-3-19 README 110000.md
Normal file
|
|
@ -0,0 +1,286 @@
|
|||
---
|
||||
Author: Antoine Foucault-Castelli
|
||||
Date: 17/03/2026
|
||||
Bibliography: @karmiFiabiliteOptimisationSystemes @ghorbelEffectBrakeLocation2020a @zhengAnalyticalApproachMesh2022
|
||||
Version: 4.0
|
||||
---
|
||||
| Newmark | Value |
|
||||
| --------------------- | --------- |
|
||||
| Newmark $\gamma$ | |
|
||||
| Newmark $\beta$ | |
|
||||
| **Gears** | **Value** |
|
||||
| $Z1$ | |
|
||||
| $Z2$ | |
|
||||
| $m_0$ | |
|
||||
| $b$ | |
|
||||
| $d_{i1}$ | |
|
||||
| $d_{i_2}$ | |
|
||||
| $N_1$ | |
|
||||
| $\alpha$ | |
|
||||
| $\rho_{steel}$ | |
|
||||
| **Masses** | **Value** |
|
||||
| $m_{in}$ | |
|
||||
| $m_{pinion12}$ | |
|
||||
| $m_{pinion21}$ | |
|
||||
| $m_{out}$ | |
|
||||
| **Stiffness** | |
|
||||
| $k_x=k_{x_1}=k_{x_2}$ | |
|
||||
| $k_y=k_{y_1}=k_{y_2}$ | |
|
||||
| $k_x=k_{x_1}=k_{x_2}$ | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
|
||||
# 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
286
config/Typora/draftsRecover/2026-3-19 README 110027.md
Normal file
286
config/Typora/draftsRecover/2026-3-19 README 110027.md
Normal file
|
|
@ -0,0 +1,286 @@
|
|||
---
|
||||
Author: Antoine Foucault-Castelli
|
||||
Date: 17/03/2026
|
||||
Bibliography: @karmiFiabiliteOptimisationSystemes @ghorbelEffectBrakeLocation2020a @zhengAnalyticalApproachMesh2022
|
||||
Version: 4.0
|
||||
---
|
||||
| Newmark | Value |
|
||||
| ------------------------------------ | --------- |
|
||||
| Newmark $\gamma$ | |
|
||||
| Newmark $\beta$ | |
|
||||
| **Gears** | **Value** |
|
||||
| $Z1$ | |
|
||||
| $Z2$ | |
|
||||
| $m_0$ | |
|
||||
| $b$ | |
|
||||
| $d_{i1}$ | |
|
||||
| $d_{i_2}$ | |
|
||||
| $N_1$ | |
|
||||
| $\alpha$ | |
|
||||
| $\rho_{steel}$ | |
|
||||
| **Masses** | **Value** |
|
||||
| $m_{in}$ | |
|
||||
| $m_{pinion12}$ | |
|
||||
| $m_{pinion21}$ | |
|
||||
| $m_{out}$ | |
|
||||
| **Stiffness** | |
|
||||
| $k_x=k_{x_1}=k_{x_2}$ | |
|
||||
| $k_y=k_{y_1}=k_{y_2}$ | |
|
||||
| $k_\theta=k_{\theta_1}=k_{\theta_2}$ | |
|
||||
| $k_{mesh__{mean}}$$ | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
|
||||
# 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
286
config/Typora/draftsRecover/2026-3-19 README 110102.md
Normal file
286
config/Typora/draftsRecover/2026-3-19 README 110102.md
Normal file
|
|
@ -0,0 +1,286 @@
|
|||
---
|
||||
Author: Antoine Foucault-Castelli
|
||||
Date: 17/03/2026
|
||||
Bibliography: @karmiFiabiliteOptimisationSystemes @ghorbelEffectBrakeLocation2020a @zhengAnalyticalApproachMesh2022
|
||||
Version: 4.0
|
||||
---
|
||||
| Newmark | Value |
|
||||
| ------------------------------------ | --------- |
|
||||
| Newmark $\gamma$ | |
|
||||
| Newmark $\beta$ | |
|
||||
| **Gears** | **Value** |
|
||||
| $Z1$ | |
|
||||
| $Z2$ | |
|
||||
| $m_0$ | |
|
||||
| $b$ | |
|
||||
| $d_{i1}$ | |
|
||||
| $d_{i_2}$ | |
|
||||
| $N_1$ | |
|
||||
| $\alpha$ | |
|
||||
| $\rho_{steel}$ | |
|
||||
| **Masses** | **Value** |
|
||||
| $m_{in}$ | |
|
||||
| $m_{pinion12}$ | |
|
||||
| $m_{pinion21}$ | |
|
||||
| $m_{out}$ | |
|
||||
| **Stiffness** | |
|
||||
| $k_x=k_{x_1}=k_{x_2}$ | |
|
||||
| $k_y=k_{y_1}=k_{y_2}$ | |
|
||||
| $k_\theta=k_{\theta_1}=k_{\theta_2}$ | |
|
||||
| $k_{mesh_{mean}}$ | |
|
||||
| **Damping** | |
|
||||
| $\eta$ | |
|
||||
| $\beta$ | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
|
||||
# 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
286
config/Typora/draftsRecover/2026-3-19 README 110121.md
Normal file
286
config/Typora/draftsRecover/2026-3-19 README 110121.md
Normal file
|
|
@ -0,0 +1,286 @@
|
|||
---
|
||||
Author: Antoine Foucault-Castelli
|
||||
Date: 17/03/2026
|
||||
Bibliography: @karmiFiabiliteOptimisationSystemes @ghorbelEffectBrakeLocation2020a @zhengAnalyticalApproachMesh2022
|
||||
Version: 4.0
|
||||
---
|
||||
| Newmark parameters | Value |
|
||||
| ------------------------------------ | --------- |
|
||||
| $\gamma$ | |
|
||||
| $\beta$ | |
|
||||
| **Gears** | **Value** |
|
||||
| $Z1$ | |
|
||||
| $Z2$ | |
|
||||
| $m_0$ | |
|
||||
| $b$ | |
|
||||
| $d_{i1}$ | |
|
||||
| $d_{i_2}$ | |
|
||||
| $N_1$ | |
|
||||
| $\alpha$ | |
|
||||
| $\rho_{steel}$ | |
|
||||
| **Masses** | **Value** |
|
||||
| $m_{in}$ | |
|
||||
| $m_{pinion12}$ | |
|
||||
| $m_{pinion21}$ | |
|
||||
| $m_{out}$ | |
|
||||
| **Stiffness** | |
|
||||
| $k_x=k_{x_1}=k_{x_2}$ | |
|
||||
| $k_y=k_{y_1}=k_{y_2}$ | |
|
||||
| $k_\theta=k_{\theta_1}=k_{\theta_2}$ | |
|
||||
| $k_{mesh_{mean}}$ | |
|
||||
| **Damping** | |
|
||||
| $\eta$ | |
|
||||
| $\beta$ | |
|
||||
| **Wind excitat** | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
|
||||
# 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
286
config/Typora/draftsRecover/2026-3-19 README 110144.md
Normal file
286
config/Typora/draftsRecover/2026-3-19 README 110144.md
Normal file
|
|
@ -0,0 +1,286 @@
|
|||
---
|
||||
Author: Antoine Foucault-Castelli
|
||||
Date: 17/03/2026
|
||||
Bibliography: @karmiFiabiliteOptimisationSystemes @ghorbelEffectBrakeLocation2020a @zhengAnalyticalApproachMesh2022
|
||||
Version: 4.0
|
||||
---
|
||||
| Newmark parameters | Value |
|
||||
| ------------------------------------ | --------- |
|
||||
| $\gamma$ | |
|
||||
| $\beta$ | |
|
||||
| **Gears** | **Value** |
|
||||
| $Z1$ | |
|
||||
| $Z2$ | |
|
||||
| $m_0$ | |
|
||||
| $b$ | |
|
||||
| $d_{i1}$ | |
|
||||
| $d_{i_2}$ | |
|
||||
| $N_1$ | |
|
||||
| $\alpha$ | |
|
||||
| $\rho_{steel}$ | |
|
||||
| **Masses** | **Value** |
|
||||
| $m_{in}$ | |
|
||||
| $m_{pinion12}$ | |
|
||||
| $m_{pinion21}$ | |
|
||||
| $m_{out}$ | |
|
||||
| **Stiffness** | |
|
||||
| $k_x=k_{x_1}=k_{x_2}$ | |
|
||||
| $k_y=k_{y_1}=k_{y_2}$ | |
|
||||
| $k_\theta=k_{\theta_1}=k_{\theta_2}$ | |
|
||||
| $k_{mesh_{mean}}$ | |
|
||||
| **Damping** | |
|
||||
| Mass related $\eta$ | |
|
||||
| Stiffness relat$\beta$ | |
|
||||
| **Wind excitation** | |
|
||||
| Blade radius $r_{blade}$ | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
|
||||
# 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
286
config/Typora/draftsRecover/2026-3-19 README 110212.md
Normal file
286
config/Typora/draftsRecover/2026-3-19 README 110212.md
Normal file
|
|
@ -0,0 +1,286 @@
|
|||
---
|
||||
Author: Antoine Foucault-Castelli
|
||||
Date: 17/03/2026
|
||||
Bibliography: @karmiFiabiliteOptimisationSystemes @ghorbelEffectBrakeLocation2020a @zhengAnalyticalApproachMesh2022
|
||||
Version: 4.0
|
||||
---
|
||||
| Newmark parameters | Value |
|
||||
| ------------------------------------- | --------- |
|
||||
| $\gamma$ | |
|
||||
| $\beta$ | |
|
||||
| **Gears** | **Value** |
|
||||
| $Z1$ | |
|
||||
| $Z2$ | |
|
||||
| $m_0$ | |
|
||||
| $b$ | |
|
||||
| $d_{i1}$ | |
|
||||
| $d_{i_2}$ | |
|
||||
| $N_1$ | |
|
||||
| $\alpha$ | |
|
||||
| $\rho_{steel}$ | |
|
||||
| **Masses** | **Value** |
|
||||
| $m_{in}$ | |
|
||||
| $m_{pinion12}$ | |
|
||||
| $m_{pinion21}$ | |
|
||||
| $m_{out}$ | |
|
||||
| **Stiffness** | |
|
||||
| Flexion k_x=k_{x_1}=k_{x_2}$ | |
|
||||
| $k_y=k_{y_1}=k_{y_2}$ | |
|
||||
| $k_\theta=k_{\theta_1}=k_{\theta_2}$ | |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | |
|
||||
| **Damping** | |
|
||||
| Mass related $\eta$ | |
|
||||
| Stiffness related $\beta$ | |
|
||||
| **Wind excitation** | |
|
||||
| Blade radius $r_{blade}$ | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
|
||||
# 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
286
config/Typora/draftsRecover/2026-3-19 README 110228.md
Normal file
286
config/Typora/draftsRecover/2026-3-19 README 110228.md
Normal file
|
|
@ -0,0 +1,286 @@
|
|||
---
|
||||
Author: Antoine Foucault-Castelli
|
||||
Date: 17/03/2026
|
||||
Bibliography: @karmiFiabiliteOptimisationSystemes @ghorbelEffectBrakeLocation2020a @zhengAnalyticalApproachMesh2022
|
||||
Version: 4.0
|
||||
---
|
||||
| Newmark parameters | Value |
|
||||
| ------------------------------------------- | --------- |
|
||||
| $\gamma$ | |
|
||||
| $\beta$ | |
|
||||
| **Gears** | **Value** |
|
||||
| $Z1$ | |
|
||||
| $Z2$ | |
|
||||
| $m_0$ | |
|
||||
| $b$ | |
|
||||
| $d_{i1}$ | |
|
||||
| $d_{i_2}$ | |
|
||||
| $N_1$ | |
|
||||
| $\alpha$ | |
|
||||
| $\rho_{steel}$ | |
|
||||
| **Masses** | **Value** |
|
||||
| $m_{in}$ | |
|
||||
| $m_{pinion12}$ | |
|
||||
| $m_{pinion21}$ | |
|
||||
| $m_{out}$ | |
|
||||
| **Stiffness** | |
|
||||
| Flexion $x$ : k_x=k_{x_1}=k_{x_2}$ | |
|
||||
| Flexion $y$ : k_y=k_{y_1}=k_{y_2}$ | |
|
||||
| Torsion$k_\theta=k_{\theta_1}=k_{\theta_2}$ | |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | |
|
||||
| **Damping** | |
|
||||
| Mass related $\eta$ | |
|
||||
| Stiffness related $\beta$ | |
|
||||
| **Wind excitation** | |
|
||||
| Blade radius $r_{blade}$ | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
|
||||
# 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
286
config/Typora/draftsRecover/2026-3-19 README 110301.md
Normal file
286
config/Typora/draftsRecover/2026-3-19 README 110301.md
Normal file
|
|
@ -0,0 +1,286 @@
|
|||
---
|
||||
Author: Antoine Foucault-Castelli
|
||||
Date: 17/03/2026
|
||||
Bibliography: @karmiFiabiliteOptimisationSystemes @ghorbelEffectBrakeLocation2020a @zhengAnalyticalApproachMesh2022
|
||||
Version: 4.0
|
||||
---
|
||||
| Newmark parameters | Value |
|
||||
| -------------------------------------------------- | --------- |
|
||||
| $\gamma$ | |
|
||||
| $\beta$ | |
|
||||
| **Gears** | **Value** |
|
||||
| $Z1$ | |
|
||||
| $Z2$ | |
|
||||
| $m_0$ | |
|
||||
| $b$ | |
|
||||
| $d_{i1}$ | |
|
||||
| $d_{i_2}$ | |
|
||||
| $N_1$ | |
|
||||
| $\alpha$ | |
|
||||
| $\rho_{steel}$ | |
|
||||
| **Masses** | **Value** |
|
||||
| $m_{in}$ | |
|
||||
| $m_{pinion12}$ | |
|
||||
| | |
|
||||
| Output mass $m_{out}$ | |
|
||||
| **Stiffness** | |
|
||||
| Flexion $x$ : k_x=k_{x_1}=k_{x_2}$ | |
|
||||
| Flexion $y$ : k_y=k_{y_1}=k_{y_2}$ | |
|
||||
| Torsion $z$ : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | |
|
||||
| **Damping** | |
|
||||
| Mass related $\eta$ | |
|
||||
| Stiffness related $\beta$ | |
|
||||
| **Wind excitation** | |
|
||||
| Blade radius $r_{blade}$ | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
|
||||
# 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
286
config/Typora/draftsRecover/2026-3-19 README 110335.md
Normal file
286
config/Typora/draftsRecover/2026-3-19 README 110335.md
Normal file
|
|
@ -0,0 +1,286 @@
|
|||
---
|
||||
Author: Antoine Foucault-Castelli
|
||||
Date: 17/03/2026
|
||||
Bibliography: @karmiFiabiliteOptimisationSystemes @ghorbelEffectBrakeLocation2020a @zhengAnalyticalApproachMesh2022
|
||||
Version: 4.0
|
||||
---
|
||||
| Newmark parameters | Value |
|
||||
| -------------------------------------------------- | --------- |
|
||||
| $\gamma$ | |
|
||||
| $\beta$ | |
|
||||
| **Gears** | **Value** |
|
||||
| $Z1$ | |
|
||||
| $Z2$ | |
|
||||
| $m_0$ | |
|
||||
| $b$ | |
|
||||
| $d_{i1}$ | |
|
||||
| $d_{i_2}$ | |
|
||||
| Inpu$N_1$ | |
|
||||
| Contact angle $\alpha$ | |
|
||||
| Steel density $\rho_{steel}$ | |
|
||||
| **Masses** | **Value** |
|
||||
| Input mass $m_{in}$ | |
|
||||
| Output mass $m_{out}$ | |
|
||||
| **Stiffness** | |
|
||||
| Flexion $x$ : k_x=k_{x_1}=k_{x_2}$ | |
|
||||
| Flexion $y$ : k_y=k_{y_1}=k_{y_2}$ | |
|
||||
| Torsion $z$ : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | |
|
||||
| **Damping** | |
|
||||
| Mass related $\eta$ | |
|
||||
| Stiffness related $\beta$ | |
|
||||
| **Wind excitation** | |
|
||||
| Blade radius $r_{blade}$ | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
|
||||
# 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
286
config/Typora/draftsRecover/2026-3-19 README 110349.md
Normal file
286
config/Typora/draftsRecover/2026-3-19 README 110349.md
Normal file
|
|
@ -0,0 +1,286 @@
|
|||
---
|
||||
Author: Antoine Foucault-Castelli
|
||||
Date: 17/03/2026
|
||||
Bibliography: @karmiFiabiliteOptimisationSystemes @ghorbelEffectBrakeLocation2020a @zhengAnalyticalApproachMesh2022
|
||||
Version: 4.0
|
||||
---
|
||||
| Newmark parameters | Value |
|
||||
| -------------------------------------------------- | --------- |
|
||||
| $\gamma$ | |
|
||||
| $\beta$ | |
|
||||
| **Gears** | **Value** |
|
||||
| $Z1$ | |
|
||||
| $Z2$ | |
|
||||
| $m_0$ | |
|
||||
| $b$ | |
|
||||
| $d_{i1}$ | |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | |
|
||||
| Input speed $N_1$ | |
|
||||
| Contact angle $\alpha$ | |
|
||||
| Steel density $\rho_{steel}$ | |
|
||||
| **Masses** | **Value** |
|
||||
| Input mass $m_{in}$ | |
|
||||
| Output mass $m_{out}$ | |
|
||||
| **Stiffness** | |
|
||||
| Flexion $x$ : k_x=k_{x_1}=k_{x_2}$ | |
|
||||
| Flexion $y$ : k_y=k_{y_1}=k_{y_2}$ | |
|
||||
| Torsion $z$ : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | |
|
||||
| **Damping** | |
|
||||
| Mass related $\eta$ | |
|
||||
| Stiffness related $\beta$ | |
|
||||
| **Wind excitation** | |
|
||||
| Blade radius $r_{blade}$ | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
|
||||
# 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
286
config/Typora/draftsRecover/2026-3-19 README 110407.md
Normal file
286
config/Typora/draftsRecover/2026-3-19 README 110407.md
Normal file
|
|
@ -0,0 +1,286 @@
|
|||
---
|
||||
Author: Antoine Foucault-Castelli
|
||||
Date: 17/03/2026
|
||||
Bibliography: @karmiFiabiliteOptimisationSystemes @ghorbelEffectBrakeLocation2020a @zhengAnalyticalApproachMesh2022
|
||||
Version: 4.0
|
||||
---
|
||||
| Newmark parameters | Value |
|
||||
| -------------------------------------------------- | --------- |
|
||||
| $\gamma$ | |
|
||||
| $\beta$ | |
|
||||
| **Gears** | **Value** |
|
||||
| $Z1$ | |
|
||||
| $Z2$ | |
|
||||
| $m_0$ | |
|
||||
| Pini$b$ | |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | |
|
||||
| Input speed $N_1$ | |
|
||||
| Contact angle $\alpha$ | |
|
||||
| Steel density $\rho_{steel}$ | |
|
||||
| **Masses** | **Value** |
|
||||
| Input mass $m_{in}$ | |
|
||||
| Output mass $m_{out}$ | |
|
||||
| **Stiffness** | |
|
||||
| Flexion $x$ : k_x=k_{x_1}=k_{x_2}$ | |
|
||||
| Flexion $y$ : k_y=k_{y_1}=k_{y_2}$ | |
|
||||
| Torsion $z$ : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | |
|
||||
| **Damping** | |
|
||||
| Mass related $\eta$ | |
|
||||
| Stiffness related $\beta$ | |
|
||||
| **Wind excitation** | |
|
||||
| Blade radius $r_{blade}$ | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
|
||||
# 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
286
config/Typora/draftsRecover/2026-3-19 README 110430.md
Normal file
286
config/Typora/draftsRecover/2026-3-19 README 110430.md
Normal file
|
|
@ -0,0 +1,286 @@
|
|||
---
|
||||
Author: Antoine Foucault-Castelli
|
||||
Date: 17/03/2026
|
||||
Bibliography: @karmiFiabiliteOptimisationSystemes @ghorbelEffectBrakeLocation2020a @zhengAnalyticalApproachMesh2022
|
||||
Version: 4.0
|
||||
---
|
||||
| Newmark parameters | Value |
|
||||
| -------------------------------------------------- | --------- |
|
||||
| $\gamma$ | |
|
||||
| $\beta$ | |
|
||||
| **Gears** | **Value** |
|
||||
| $Z1$ | |
|
||||
| Pinion 2 tooth number $Z2$ | |
|
||||
| Pinion modulus $m_0$ | |
|
||||
| Pinion width $b$ | |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | |
|
||||
| Input speed $N_1$ | |
|
||||
| Contact angle $\alpha$ | |
|
||||
| Steel density $\rho_{steel}$ | |
|
||||
| **Masses** | **Value** |
|
||||
| Input mass $m_{in}$ | |
|
||||
| Output mass $m_{out}$ | |
|
||||
| **Stiffness** | |
|
||||
| Flexion $x$ : k_x=k_{x_1}=k_{x_2}$ | |
|
||||
| Flexion $y$ : k_y=k_{y_1}=k_{y_2}$ | |
|
||||
| Torsion $z$ : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | |
|
||||
| **Damping** | |
|
||||
| Mass related $\eta$ | |
|
||||
| Stiffness related $\beta$ | |
|
||||
| **Wind excitation** | |
|
||||
| Blade radius $r_{blade}$ | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
|
||||
# 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
286
config/Typora/draftsRecover/2026-3-19 README 110519.md
Normal file
286
config/Typora/draftsRecover/2026-3-19 README 110519.md
Normal file
|
|
@ -0,0 +1,286 @@
|
|||
---
|
||||
Author: Antoine Foucault-Castelli
|
||||
Date: 17/03/2026
|
||||
Bibliography: @karmiFiabiliteOptimisationSystemes @ghorbelEffectBrakeLocation2020a @zhengAnalyticalApproachMesh2022
|
||||
Version: 4.0
|
||||
---
|
||||
| Newmark parameters | Value |
|
||||
| -------------------------------------------------- | --------- |
|
||||
| $\gamma$ | |
|
||||
| $\beta$ | |
|
||||
| **Gears** | **Value** |
|
||||
| Pinon 1 tooth number $Z1$ | |
|
||||
| Pinion 2 tooth number $Z2$ | |
|
||||
| Pinion modulus $m_0$ | |
|
||||
| Pinion width $b$ | |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | |
|
||||
| Input speed $N_1$ | |
|
||||
| Contact angle $\alpha$ | |
|
||||
| Steel density $\rho_{steel}$ | |
|
||||
| **Masses** | **Value** |
|
||||
| Input mass $m_{in}$ | |
|
||||
| Output mass $m_{out}$ | |
|
||||
| **Stiffness** | |
|
||||
| Flexion $x$ : k_x=k_{x_1}=k_{x_2}$ | |
|
||||
| Flexion $y$ : k_y=k_{y_1}=k_{y_2}$ | |
|
||||
| Torsion $z$ : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | |
|
||||
| **Damping** | |
|
||||
| Mass related $\eta$ | |
|
||||
| Stiffness related $\beta$ | |
|
||||
| **Wind excitation** | |
|
||||
| Blade radius $r_{blade}$ | |
|
||||
| Air density $rho_{air}$ | |
|
||||
| Wind | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
|
||||
# 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
286
config/Typora/draftsRecover/2026-3-19 README 110549.md
Normal file
286
config/Typora/draftsRecover/2026-3-19 README 110549.md
Normal file
|
|
@ -0,0 +1,286 @@
|
|||
---
|
||||
Author: Antoine Foucault-Castelli
|
||||
Date: 17/03/2026
|
||||
Bibliography: @karmiFiabiliteOptimisationSystemes @ghorbelEffectBrakeLocation2020a @zhengAnalyticalApproachMesh2022
|
||||
Version: 4.0
|
||||
---
|
||||
| Newmark parameters | Value |
|
||||
| -------------------------------------------------- | --------- |
|
||||
| $\gamma$ | |
|
||||
| $\beta$ | |
|
||||
| **Gears** | **Value** |
|
||||
| Pinon 1 tooth number $Z1$ | |
|
||||
| Pinion 2 tooth number $Z2$ | |
|
||||
| Pinion modulus $m_0$ | |
|
||||
| Pinion width $b$ | |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | |
|
||||
| Input speed $N_1$ | |
|
||||
| Contact angle $\alpha$ | |
|
||||
| Steel density $\rho_{steel}$ | |
|
||||
| **Masses** | **Value** |
|
||||
| Input mass $m_{in}$ | |
|
||||
| Output mass $m_{out}$ | |
|
||||
| **Stiffness** | |
|
||||
| Flexion $x$ : k_x=k_{x_1}=k_{x_2}$ | |
|
||||
| Flexion $y$ : k_y=k_{y_1}=k_{y_2}$ | |
|
||||
| Torsion $z$ : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | |
|
||||
| **Damping** | |
|
||||
| Mass related $\eta$ | |
|
||||
| Stiffness related $\beta$ | |
|
||||
| **Wind excitation** | |
|
||||
| Blade radius $r_{blade}$ | |
|
||||
| Air density $\rho_{air}$ | |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
|
||||
# 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
286
config/Typora/draftsRecover/2026-3-19 README 110612.md
Normal file
286
config/Typora/draftsRecover/2026-3-19 README 110612.md
Normal file
|
|
@ -0,0 +1,286 @@
|
|||
---
|
||||
Author: Antoine Foucault-Castelli
|
||||
Date: 17/03/2026
|
||||
Bibliography: @karmiFiabiliteOptimisationSystemes @ghorbelEffectBrakeLocation2020a @zhengAnalyticalApproachMesh2022
|
||||
Version: 4.0
|
||||
---
|
||||
| Newmark parameters | Value |
|
||||
| -------------------------------------------------- | --------- |
|
||||
| $\gamma$ | |
|
||||
| $\beta$ | |
|
||||
| **Gears** | **Value** |
|
||||
| Pinon 1 tooth number $Z1$ | |
|
||||
| Pinion 2 tooth number $Z2$ | |
|
||||
| Pinion modulus $m_0$ | |
|
||||
| Pinion width $b$ | |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | |
|
||||
| Input speed $N_1$ | |
|
||||
| Contact angle $\alpha$ | |
|
||||
| Steel density $\rho_{steel}$ | |
|
||||
| **Masses** | **Value** |
|
||||
| Input mass $m_{in}$ | |
|
||||
| Output mass $m_{out}$ | |
|
||||
| **Stiffness** | |
|
||||
| Flexion $x$ : k_x=k_{x_1}=k_{x_2}$ | |
|
||||
| Flexion $y$ : k_y=k_{y_1}=k_{y_2}$ | |
|
||||
| Torsion $z$ : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | |
|
||||
| **Damping** | |
|
||||
| Mass related $\eta$ | |
|
||||
| Stiffness related $\beta$ | |
|
||||
| **Wind excitation** | |
|
||||
| Blade radius $r_{blade}$ | |
|
||||
| Air density $\rho_{air}$ | |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | |
|
||||
| Fluctuating external torque $T_{fluct}$ | |
|
||||
| Fluctuating external frequency $$ | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
|
||||
# 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
286
config/Typora/draftsRecover/2026-3-19 README 110643.md
Normal file
286
config/Typora/draftsRecover/2026-3-19 README 110643.md
Normal file
|
|
@ -0,0 +1,286 @@
|
|||
---
|
||||
Author: Antoine Foucault-Castelli
|
||||
Date: 17/03/2026
|
||||
Bibliography: @karmiFiabiliteOptimisationSystemes @ghorbelEffectBrakeLocation2020a @zhengAnalyticalApproachMesh2022
|
||||
Version: 4.0
|
||||
---
|
||||
| Newmark parameters | Value |
|
||||
| -------------------------------------------------- | --------- |
|
||||
| $\gamma$ | |
|
||||
| $\beta$ | |
|
||||
| **Gears** | **Value** |
|
||||
| Pinon 1 tooth number $Z1$ | |
|
||||
| Pinion 2 tooth number $Z2$ | |
|
||||
| Pinion modulus $m_0$ | |
|
||||
| Pinion width $b$ | |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | |
|
||||
| Input speed $N_1$ | |
|
||||
| Contact angle $\alpha$ | |
|
||||
| Steel density $\rho_{steel}$ | |
|
||||
| **Masses** | **Value** |
|
||||
| Input mass $m_{in}$ | |
|
||||
| Output mass $m_{out}$ | |
|
||||
| **Stiffness** | |
|
||||
| Flexion $x$ : k_x=k_{x_1}=k_{x_2}$ | |
|
||||
| Flexion $y$ : k_y=k_{y_1}=k_{y_2}$ | |
|
||||
| Torsion $z$ : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | |
|
||||
| **Damping** | **Value** |
|
||||
| Mass related $\eta$ | |
|
||||
| Stiffness related $\beta$ | |
|
||||
| **Wind excitation** | **Value** |
|
||||
| Blade radius $r_{blade}$ | |
|
||||
| Air density $\rho_{air}$ | |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | |
|
||||
| Fluctuating external torque $T_{fluct}$ | |
|
||||
| Fluctuating external frequency $f_{fluct}$ | |
|
||||
| Performance efficiency | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
|
||||
# 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
286
config/Typora/draftsRecover/2026-3-19 README 110710.md
Normal file
286
config/Typora/draftsRecover/2026-3-19 README 110710.md
Normal file
|
|
@ -0,0 +1,286 @@
|
|||
---
|
||||
Author: Antoine Foucault-Castelli
|
||||
Date: 17/03/2026
|
||||
Bibliography: @karmiFiabiliteOptimisationSystemes @ghorbelEffectBrakeLocation2020a @zhengAnalyticalApproachMesh2022
|
||||
Version: 4.0
|
||||
---
|
||||
| Newmark parameters | Value |
|
||||
| -------------------------------------------------- | --------- |
|
||||
| $\gamma$ | 0.7 |
|
||||
| $\beta$ | 0.3 |
|
||||
| **Gears** | **Value** |
|
||||
| Pinon 1 tooth number $Z1$ | 72 |
|
||||
| Pinion 2 tooth number $Z2$ | 18 |
|
||||
| Pinion modulus $m_0$ | 0.016 |
|
||||
| Pinion width $b$ | 0.1 |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | |
|
||||
| Input speed $N_1$ | |
|
||||
| Contact angle $\alpha$ | |
|
||||
| Steel density $\rho_{steel}$ | |
|
||||
| **Masses** | **Value** |
|
||||
| Input mass $m_{in}$ | |
|
||||
| Output mass $m_{out}$ | |
|
||||
| **Stiffness** | |
|
||||
| Flexion $x$ : k_x=k_{x_1}=k_{x_2}$ | |
|
||||
| Flexion $y$ : k_y=k_{y_1}=k_{y_2}$ | |
|
||||
| Torsion $z$ : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | |
|
||||
| **Damping** | **Value** |
|
||||
| Mass related $\eta$ | |
|
||||
| Stiffness related $\beta$ | |
|
||||
| **Wind excitation** | **Value** |
|
||||
| Blade radius $r_{blade}$ | |
|
||||
| Air density $\rho_{air}$ | |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | |
|
||||
| Fluctuating external torque $T_{fluct}$ | |
|
||||
| Fluctuating external frequency $f_{fluct}$ | |
|
||||
| Performance efficiency $cp$ | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
|
||||
# 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
286
config/Typora/draftsRecover/2026-3-19 README 110735.md
Normal file
286
config/Typora/draftsRecover/2026-3-19 README 110735.md
Normal file
|
|
@ -0,0 +1,286 @@
|
|||
---
|
||||
Author: Antoine Foucault-Castelli
|
||||
Date: 17/03/2026
|
||||
Bibliography: @karmiFiabiliteOptimisationSystemes @ghorbelEffectBrakeLocation2020a @zhengAnalyticalApproachMesh2022
|
||||
Version: 4.0
|
||||
---
|
||||
| Newmark parameters | Value | **UNit** |
|
||||
| -------------------------------------------------- | --------- | -------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | |
|
||||
| Pinion width $b$ | 0.1 | |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | |
|
||||
| Input speed $N_1$ | 17 | |
|
||||
| Contact angle $\alpha$ | 20° | |
|
||||
| Steel density $\rho_{steel}$ | 7860 | |
|
||||
| **Masses** | **Value** | |
|
||||
| Input mass $m_{in}$ | | |
|
||||
| Output mass $m_{out}$ | | |
|
||||
| **Stiffness** | | |
|
||||
| Flexion $x$ : k_x=k_{x_1}=k_{x_2}$ | | |
|
||||
| Flexion $y$ : k_y=k_{y_1}=k_{y_2}$ | | |
|
||||
| Torsion $z$ : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | | |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | | |
|
||||
| **Damping** | **Value** | |
|
||||
| Mass related $\eta$ | | |
|
||||
| Stiffness related $\beta$ | | |
|
||||
| **Wind excitation** | **Value** | |
|
||||
| Blade radius $r_{blade}$ | | |
|
||||
| Air density $\rho_{air}$ | | |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | | |
|
||||
| Fluctuating external torque $T_{fluct}$ | | |
|
||||
| Fluctuating external frequency $f_{fluct}$ | | |
|
||||
| Performance efficiency $cp$ | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
|
||||
# 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
286
config/Typora/draftsRecover/2026-3-19 README 110802.md
Normal file
286
config/Typora/draftsRecover/2026-3-19 README 110802.md
Normal file
|
|
@ -0,0 +1,286 @@
|
|||
---
|
||||
Author: Antoine Foucault-Castelli
|
||||
Date: 17/03/2026
|
||||
Bibliography: @karmiFiabiliteOptimisationSystemes @ghorbelEffectBrakeLocation2020a @zhengAnalyticalApproachMesh2022
|
||||
Version: 4.0
|
||||
---
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| -------------------------------------------------- | --------- | -------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | |
|
||||
| Pinion width $b$ | 0.1 | |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | ° |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m2 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | | |
|
||||
| Output mass $m_{out}$ | | |
|
||||
| **Stiffness** | | |
|
||||
| Flexion $x$ : k_x=k_{x_1}=k_{x_2}$ | | |
|
||||
| Flexion $y$ : k_y=k_{y_1}=k_{y_2}$ | | |
|
||||
| Torsion $z$ : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | | |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | | |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | | |
|
||||
| Stiffness related $\beta$ | | |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | | |
|
||||
| Air density $\rho_{air}$ | | |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | | |
|
||||
| Fluctuating external torque $T_{fluct}$ | | |
|
||||
| Fluctuating external frequency $f_{fluct}$ | | |
|
||||
| Performance efficiency $cp$ | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
|
||||
# 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
286
config/Typora/draftsRecover/2026-3-19 README 110841.md
Normal file
286
config/Typora/draftsRecover/2026-3-19 README 110841.md
Normal file
|
|
@ -0,0 +1,286 @@
|
|||
---
|
||||
Author: Antoine Foucault-Castelli
|
||||
Date: 17/03/2026
|
||||
Bibliography: @karmiFiabiliteOptimisationSystemes @ghorbelEffectBrakeLocation2020a @zhengAnalyticalApproachMesh2022
|
||||
Version: 4.0
|
||||
---
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| -------------------------------------------------- | --------- | -------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m2 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion $x$ : $k_x=k_{x_1}=k_{x_2}$ | | |
|
||||
| Flexion $y$ : k_y=k_{y_1}=k_{y_2}$ | | |
|
||||
| Torsion $z$ : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | | |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | | |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | | |
|
||||
| Stiffness related $\beta$ | | |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | | |
|
||||
| Air density $\rho_{air}$ | | |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | | |
|
||||
| Fluctuating external torque $T_{fluct}$ | | |
|
||||
| Fluctuating external frequency $f_{fluct}$ | | |
|
||||
| Performance efficiency $cp$ | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
|
||||
# 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
286
config/Typora/draftsRecover/2026-3-19 README 110905.md
Normal file
286
config/Typora/draftsRecover/2026-3-19 README 110905.md
Normal file
|
|
@ -0,0 +1,286 @@
|
|||
---
|
||||
Author: Antoine Foucault-Castelli
|
||||
Date: 17/03/2026
|
||||
Bibliography: @karmiFiabiliteOptimisationSystemes @ghorbelEffectBrakeLocation2020a @zhengAnalyticalApproachMesh2022
|
||||
Version: 4.0
|
||||
---
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| -------------------------------------------------- | --------- | -------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m2 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion $x$ : $k_x=k_{x_1}=k_{x_2}$ | 1e8 | kg/m |
|
||||
| Flexion $y$ : $k_y=k_{y_1}=k_{y_2}$ | 1e8 | |
|
||||
| Torsion $z$ : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | 1e5 | |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | 1e8 | |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | | |
|
||||
| Stiffness related $\beta$ | | |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | | |
|
||||
| Air density $\rho_{air}$ | | |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | | |
|
||||
| Fluctuating external torque $T_{fluct}$ | | |
|
||||
| Fluctuating external frequency $f_{fluct}$ | | |
|
||||
| Performance efficiency $cp$ | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
|
||||
# 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
286
config/Typora/draftsRecover/2026-3-19 README 111410.md
Normal file
286
config/Typora/draftsRecover/2026-3-19 README 111410.md
Normal file
|
|
@ -0,0 +1,286 @@
|
|||
---
|
||||
Author: Antoine Foucault-Castelli
|
||||
Date: 17/03/2026
|
||||
Bibliography: @karmiFiabiliteOptimisationSystemes @ghorbelEffectBrakeLocation2020a @zhengAnalyticalApproachMesh2022
|
||||
Version: 4.0
|
||||
---
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| -------------------------------------------------- | --------- | -------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m2 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion $x$ : $k_x=k_{x_1}=k_{x_2}$ | 1e8 | N/m |
|
||||
| Flexion $y$ : $k_y=k_{y_1}=k_{y_2}$ | 1e8 | N/m |
|
||||
| Torsion $z$ : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | 1e5 | N/m |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | 1e8 | N/m |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | | |
|
||||
| Stiffness related $\beta$ | | |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | | |
|
||||
| Air density $\rho_{air}$ | | |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | | |
|
||||
| Fluctuating external torque $T_{fluct}$ | | |
|
||||
| Fluctuating external frequency $f_{fluct}$ | | |
|
||||
| Performance efficiency $cp$ | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
|
||||
# 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
286
config/Typora/draftsRecover/2026-3-19 README 111450.md
Normal file
286
config/Typora/draftsRecover/2026-3-19 README 111450.md
Normal file
|
|
@ -0,0 +1,286 @@
|
|||
---
|
||||
Author: Antoine Foucault-Castelli
|
||||
Date: 17/03/2026
|
||||
Bibliography: @karmiFiabiliteOptimisationSystemes @ghorbelEffectBrakeLocation2020a @zhengAnalyticalApproachMesh2022
|
||||
Version: 4.0
|
||||
---
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| -------------------------------------------------- | --------- | -------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m2 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion $x$ : $k_x=k_{x_1}=k_{x_2}$ | 1e8 | N/m |
|
||||
| Flexion $y$ : $k_y=k_{y_1}=k_{y_2}$ | 1e8 | N/m |
|
||||
| Torsion $z$ : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | 1e5 | N/m |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | 5e-2 | N/(m/s) |
|
||||
| Stiffness related $\beta$ | 1e-6 | N/(m/s)/ |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | | |
|
||||
| Air density $\rho_{air}$ | | |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | | |
|
||||
| Fluctuating external torque $T_{fluct}$ | | |
|
||||
| Fluctuating external frequency $f_{fluct}$ | | |
|
||||
| Performance efficiency $cp$ | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
|
||||
# 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
286
config/Typora/draftsRecover/2026-3-19 README 111507.md
Normal file
286
config/Typora/draftsRecover/2026-3-19 README 111507.md
Normal file
|
|
@ -0,0 +1,286 @@
|
|||
---
|
||||
Author: Antoine Foucault-Castelli
|
||||
Date: 17/03/2026
|
||||
Bibliography: @karmiFiabiliteOptimisationSystemes @ghorbelEffectBrakeLocation2020a @zhengAnalyticalApproachMesh2022
|
||||
Version: 4.0
|
||||
---
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| -------------------------------------------------- | --------- | --------------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m2 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion $x$ : $k_x=k_{x_1}=k_{x_2}$ | 1e8 | N/m |
|
||||
| Flexion $y$ : $k_y=k_{y_1}=k_{y_2}$ | 1e8 | N/m |
|
||||
| Torsion $z$ : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | 1e5 | N/m |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related $\beta$ | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | 6 | m |
|
||||
| Air density $\rho_{air}$ | 1.225 | |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | | |
|
||||
| Fluctuating external torque $T_{fluct}$ | | |
|
||||
| Fluctuating external frequency $f_{fluct}$ | | |
|
||||
| Performance efficiency $cp$ | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
|
||||
# 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
286
config/Typora/draftsRecover/2026-3-19 README 111537.md
Normal file
286
config/Typora/draftsRecover/2026-3-19 README 111537.md
Normal file
|
|
@ -0,0 +1,286 @@
|
|||
---
|
||||
Author: Antoine Foucault-Castelli
|
||||
Date: 17/03/2026
|
||||
Bibliography: @karmiFiabiliteOptimisationSystemes @ghorbelEffectBrakeLocation2020a @zhengAnalyticalApproachMesh2022
|
||||
Version: 4.0
|
||||
---
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| -------------------------------------------------- | --------- | --------------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion $x$ : $k_x=k_{x_1}=k_{x_2}$ | 1e8 | N/m |
|
||||
| Flexion $y$ : $k_y=k_{y_1}=k_{y_2}$ | 1e8 | N/m |
|
||||
| Torsion $z$ : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | 1e5 | N/m |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related $\beta$ | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | 6 | m |
|
||||
| Air density $\rho_{air}$ | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | 10 | m/s |
|
||||
| Fluctuating external torque $T_{fluct}$ | 50 | N |
|
||||
| Fluctuating external frequency $f_{fluct}$ | 6 | |
|
||||
| Performance efficiency $cp$ | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
| | | |
|
||||
|
||||
# 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
277
config/Typora/draftsRecover/2026-3-19 README 111705.md
Normal file
277
config/Typora/draftsRecover/2026-3-19 README 111705.md
Normal file
|
|
@ -0,0 +1,277 @@
|
|||
---
|
||||
Author: Antoine Foucault-Castelli
|
||||
Date: 17/03/2026
|
||||
Bibliography: @karmiFiabiliteOptimisationSystemes @ghorbelEffectBrakeLocation2020a @zhengAnalyticalApproachMesh2022
|
||||
Version: 4.0
|
||||
---
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| -------------------------------------------------- | --------- | --------------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion $x$ : $k_x=k_{x_1}=k_{x_2}$ | 1e8 | N/m |
|
||||
| Flexion $y$ : $k_y=k_{y_1}=k_{y_2}$ | 1e8 | N/m |
|
||||
| Torsion $z$ : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | 1e5 | N/m |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related $\beta$ | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | 6 | m |
|
||||
| Air density $\rho_{air}$ | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | 10 | m/s |
|
||||
| Fluctuating external torque $T_{fluct}$ | 50 | N |
|
||||
| Fluctuating external frequency $f_{fluct}$ | 6 | Hz |
|
||||
| Performance efficiency $cp$ | 16/27 | |
|
||||
|
||||
# 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
275
config/Typora/draftsRecover/2026-3-19 README 111754.md
Normal file
275
config/Typora/draftsRecover/2026-3-19 README 111754.md
Normal file
|
|
@ -0,0 +1,275 @@
|
|||
---
|
||||
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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ---------------------------------------------- | --------- | --------------- |
|
||||
| \gamma | 0.7 | |
|
||||
| \beta | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number Z1 | 72 | |
|
||||
| Pinion 2 tooth number Z2 | 18 | |
|
||||
| Pinion modulus m_0 | 0.016 | m |
|
||||
| Pinion width b | 0.1 | m |
|
||||
| Internal diameter pinion 1 d_{i1} | 0.5 | m |
|
||||
| Internal diameter pinion 2 d_{i_2} | 0.3 | m |
|
||||
| Input speed N_1 | 17 | m/s |
|
||||
| Contact angle \alpha | 20 | degree |
|
||||
| Steel density \rho_{steel} | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass m_{in} | 54000 | kg |
|
||||
| Output mass m_{out} | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : k_x=k_{x_1}=k_{x_2} | 1e8 | N/m |
|
||||
| Flexion y : k_y=k_{y_1}=k_{y_2} | 1e8 | N/m |
|
||||
| Torsion z : k_\theta=k_{\theta_1}=k_{\theta_2} | 1e5 | N/m |
|
||||
| Mean mesh stiffness k_{mesh_{mean}} | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related \eta | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related \beta | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius r_{blade} | 6 | m |
|
||||
| Air density \rho_{air} | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) v_{wind_{mean}} | 10 | m/s |
|
||||
| Fluctuating external torque T_{fluct} | 50 | N |
|
||||
| Fluctuating external frequency f_{fluct} | 6 | Hz |
|
||||
| Performance efficiency cp | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness m**
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
277
config/Typora/draftsRecover/2026-3-19 README 111821.md
Normal file
277
config/Typora/draftsRecover/2026-3-19 README 111821.md
Normal file
|
|
@ -0,0 +1,277 @@
|
|||
---
|
||||
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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ---------------------------------------------- | --------- | --------------- |
|
||||
| \gamma | 0.7 | |
|
||||
| \beta | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number Z1 | 72 | |
|
||||
| Pinion 2 tooth number Z2 | 18 | |
|
||||
| Pinion modulus m_0 | 0.016 | m |
|
||||
| Pinion width b | 0.1 | m |
|
||||
| Internal diameter pinion 1 d_{i1} | 0.5 | m |
|
||||
| Internal diameter pinion 2 d_{i_2} | 0.3 | m |
|
||||
| Input speed N_1 | 17 | m/s |
|
||||
| Contact angle \alpha | 20 | degree |
|
||||
| Steel density \rho_{steel} | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass m_{in} | 54000 | kg |
|
||||
| Output mass m_{out} | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : k_x=k_{x_1}=k_{x_2} | 1e8 | N/m |
|
||||
| Flexion y : k_y=k_{y_1}=k_{y_2} | 1e8 | N/m |
|
||||
| Torsion z : k_\theta=k_{\theta_1}=k_{\theta_2} | 1e5 | N/m |
|
||||
| Mean mesh stiffness k_{mesh_{mean}} | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related \eta | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related \beta | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius r_{blade} | 6 | m |
|
||||
| Air density \rho_{air} | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) v_{wind_{mean}} | 10 | m/s |
|
||||
| Fluctuating external torque T_{fluct} | 50 | N |
|
||||
| Fluctuating external frequency f_{fluct} | 6 | Hz |
|
||||
| Performance efficiency cp | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal,
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
277
config/Typora/draftsRecover/2026-3-19 README 111842.md
Normal file
277
config/Typora/draftsRecover/2026-3-19 README 111842.md
Normal file
|
|
@ -0,0 +1,277 @@
|
|||
---
|
||||
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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ---------------------------------------------- | --------- | --------------- |
|
||||
| \gamma | 0.7 | |
|
||||
| \beta | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number Z1 | 72 | |
|
||||
| Pinion 2 tooth number Z2 | 18 | |
|
||||
| Pinion modulus m_0 | 0.016 | m |
|
||||
| Pinion width b | 0.1 | m |
|
||||
| Internal diameter pinion 1 d_{i1} | 0.5 | m |
|
||||
| Internal diameter pinion 2 d_{i_2} | 0.3 | m |
|
||||
| Input speed N_1 | 17 | m/s |
|
||||
| Contact angle \alpha | 20 | degree |
|
||||
| Steel density \rho_{steel} | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass m_{in} | 54000 | kg |
|
||||
| Output mass m_{out} | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : k_x=k_{x_1}=k_{x_2} | 1e8 | N/m |
|
||||
| Flexion y : k_y=k_{y_1}=k_{y_2} | 1e8 | N/m |
|
||||
| Torsion z : k_\theta=k_{\theta_1}=k_{\theta_2} | 1e5 | N/m |
|
||||
| Mean mesh stiffness k_{mesh_{mean}} | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related \eta | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related \beta | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius r_{blade} | 6 | m |
|
||||
| Air density \rho_{air} | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) v_{wind_{mean}} | 10 | m/s |
|
||||
| Fluctuating external torque T_{fluct} | 50 | N |
|
||||
| Fluctuating external frequency f_{fluct} | 6 | Hz |
|
||||
| Performance efficiency cp | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal, with $T_{high}=\epsilon-1$
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
277
config/Typora/draftsRecover/2026-3-19 README 111907.md
Normal file
277
config/Typora/draftsRecover/2026-3-19 README 111907.md
Normal file
|
|
@ -0,0 +1,277 @@
|
|||
---
|
||||
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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ---------------------------------------------- | --------- | --------------- |
|
||||
| \gamma | 0.7 | |
|
||||
| \beta | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number Z1 | 72 | |
|
||||
| Pinion 2 tooth number Z2 | 18 | |
|
||||
| Pinion modulus m_0 | 0.016 | m |
|
||||
| Pinion width b | 0.1 | m |
|
||||
| Internal diameter pinion 1 d_{i1} | 0.5 | m |
|
||||
| Internal diameter pinion 2 d_{i_2} | 0.3 | m |
|
||||
| Input speed N_1 | 17 | m/s |
|
||||
| Contact angle \alpha | 20 | degree |
|
||||
| Steel density \rho_{steel} | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass m_{in} | 54000 | kg |
|
||||
| Output mass m_{out} | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : k_x=k_{x_1}=k_{x_2} | 1e8 | N/m |
|
||||
| Flexion y : k_y=k_{y_1}=k_{y_2} | 1e8 | N/m |
|
||||
| Torsion z : k_\theta=k_{\theta_1}=k_{\theta_2} | 1e5 | N/m |
|
||||
| Mean mesh stiffness k_{mesh_{mean}} | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related \eta | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related \beta | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius r_{blade} | 6 | m |
|
||||
| Air density \rho_{air} | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) v_{wind_{mean}} | 10 | m/s |
|
||||
| Fluctuating external torque T_{fluct} | 50 | N |
|
||||
| Fluctuating external frequency f_{fluct} | 6 | Hz |
|
||||
| Performance efficiency cp | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal, with $T_{high}=(\varepsilon-1)*T_{mesh}$ and $T_{low}$
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
277
config/Typora/draftsRecover/2026-3-19 README 112025.md
Normal file
277
config/Typora/draftsRecover/2026-3-19 README 112025.md
Normal file
|
|
@ -0,0 +1,277 @@
|
|||
---
|
||||
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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ---------------------------------------------- | --------- | --------------- |
|
||||
| \gamma | 0.7 | |
|
||||
| \beta | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number Z1 | 72 | |
|
||||
| Pinion 2 tooth number Z2 | 18 | |
|
||||
| Pinion modulus m_0 | 0.016 | m |
|
||||
| Pinion width b | 0.1 | m |
|
||||
| Internal diameter pinion 1 d_{i1} | 0.5 | m |
|
||||
| Internal diameter pinion 2 d_{i_2} | 0.3 | m |
|
||||
| Input speed N_1 | 17 | m/s |
|
||||
| Contact angle \alpha | 20 | degree |
|
||||
| Steel density \rho_{steel} | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass m_{in} | 54000 | kg |
|
||||
| Output mass m_{out} | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : k_x=k_{x_1}=k_{x_2} | 1e8 | N/m |
|
||||
| Flexion y : k_y=k_{y_1}=k_{y_2} | 1e8 | N/m |
|
||||
| Torsion z : k_\theta=k_{\theta_1}=k_{\theta_2} | 1e5 | N/m |
|
||||
| Mean mesh stiffness k_{mesh_{mean}} | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related \eta | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related \beta | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius r_{blade} | 6 | m |
|
||||
| Air density \rho_{air} | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) v_{wind_{mean}} | 10 | m/s |
|
||||
| Fluctuating external torque T_{fluct} | 50 | N |
|
||||
| Fluctuating external frequency f_{fluct} | 6 | Hz |
|
||||
| Performance efficiency cp | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal, with $T_{high}=(\varepsilon-1)*T_{mesh}$ and $T_{low}=(\varepsilon)*T_{mesh}$
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
277
config/Typora/draftsRecover/2026-3-19 README 112050.md
Normal file
277
config/Typora/draftsRecover/2026-3-19 README 112050.md
Normal file
|
|
@ -0,0 +1,277 @@
|
|||
---
|
||||
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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ---------------------------------------------- | --------- | --------------- |
|
||||
| \gamma | 0.7 | |
|
||||
| \beta | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number Z1 | 72 | |
|
||||
| Pinion 2 tooth number Z2 | 18 | |
|
||||
| Pinion modulus m_0 | 0.016 | m |
|
||||
| Pinion width b | 0.1 | m |
|
||||
| Internal diameter pinion 1 d_{i1} | 0.5 | m |
|
||||
| Internal diameter pinion 2 d_{i_2} | 0.3 | m |
|
||||
| Input speed N_1 | 17 | m/s |
|
||||
| Contact angle \alpha | 20 | degree |
|
||||
| Steel density \rho_{steel} | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass m_{in} | 54000 | kg |
|
||||
| Output mass m_{out} | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : k_x=k_{x_1}=k_{x_2} | 1e8 | N/m |
|
||||
| Flexion y : k_y=k_{y_1}=k_{y_2} | 1e8 | N/m |
|
||||
| Torsion z : k_\theta=k_{\theta_1}=k_{\theta_2} | 1e5 | N/m |
|
||||
| Mean mesh stiffness k_{mesh_{mean}} | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related \eta | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related \beta | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius r_{blade} | 6 | m |
|
||||
| Air density \rho_{air} | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) v_{wind_{mean}} | 10 | m/s |
|
||||
| Fluctuating external torque T_{fluct} | 50 | N |
|
||||
| Fluctuating external frequency f_{fluct} | 6 | Hz |
|
||||
| Performance efficiency cp | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal, with $T_{high}=(\varepsilon-1)*T_{mesh}$ and $T_{low}=(2-\varepsilon)*T_{mesh}$.
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
277
config/Typora/draftsRecover/2026-3-19 README 112109.md
Normal file
277
config/Typora/draftsRecover/2026-3-19 README 112109.md
Normal file
|
|
@ -0,0 +1,277 @@
|
|||
---
|
||||
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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ---------------------------------------------- | --------- | --------------- |
|
||||
| \gamma | 0.7 | |
|
||||
| \beta | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number Z1 | 72 | |
|
||||
| Pinion 2 tooth number Z2 | 18 | |
|
||||
| Pinion modulus m_0 | 0.016 | m |
|
||||
| Pinion width b | 0.1 | m |
|
||||
| Internal diameter pinion 1 d_{i1} | 0.5 | m |
|
||||
| Internal diameter pinion 2 d_{i_2} | 0.3 | m |
|
||||
| Input speed N_1 | 17 | m/s |
|
||||
| Contact angle \alpha | 20 | degree |
|
||||
| Steel density \rho_{steel} | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass m_{in} | 54000 | kg |
|
||||
| Output mass m_{out} | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : k_x=k_{x_1}=k_{x_2} | 1e8 | N/m |
|
||||
| Flexion y : k_y=k_{y_1}=k_{y_2} | 1e8 | N/m |
|
||||
| Torsion z : k_\theta=k_{\theta_1}=k_{\theta_2} | 1e5 | N/m |
|
||||
| Mean mesh stiffness k_{mesh_{mean}} | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related \eta | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related \beta | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius r_{blade} | 6 | m |
|
||||
| Air density \rho_{air} | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) v_{wind_{mean}} | 10 | m/s |
|
||||
| Fluctuating external torque T_{fluct} | 50 | N |
|
||||
| Fluctuating external frequency f_{fluct} | 6 | Hz |
|
||||
| Performance efficiency cp | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal, with $T_{high}=(\varepsilon-1)*T_{mesh}$ and $T_{low}=(2-\varepsilon)*T_{mesh}$. 10% of the start and of the end of
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
277
config/Typora/draftsRecover/2026-3-19 README 112128.md
Normal file
277
config/Typora/draftsRecover/2026-3-19 README 112128.md
Normal file
|
|
@ -0,0 +1,277 @@
|
|||
---
|
||||
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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ---------------------------------------------- | --------- | --------------- |
|
||||
| \gamma | 0.7 | |
|
||||
| \beta | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number Z1 | 72 | |
|
||||
| Pinion 2 tooth number Z2 | 18 | |
|
||||
| Pinion modulus m_0 | 0.016 | m |
|
||||
| Pinion width b | 0.1 | m |
|
||||
| Internal diameter pinion 1 d_{i1} | 0.5 | m |
|
||||
| Internal diameter pinion 2 d_{i_2} | 0.3 | m |
|
||||
| Input speed N_1 | 17 | m/s |
|
||||
| Contact angle \alpha | 20 | degree |
|
||||
| Steel density \rho_{steel} | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass m_{in} | 54000 | kg |
|
||||
| Output mass m_{out} | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : k_x=k_{x_1}=k_{x_2} | 1e8 | N/m |
|
||||
| Flexion y : k_y=k_{y_1}=k_{y_2} | 1e8 | N/m |
|
||||
| Torsion z : k_\theta=k_{\theta_1}=k_{\theta_2} | 1e5 | N/m |
|
||||
| Mean mesh stiffness k_{mesh_{mean}} | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related \eta | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related \beta | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius r_{blade} | 6 | m |
|
||||
| Air density \rho_{air} | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) v_{wind_{mean}} | 10 | m/s |
|
||||
| Fluctuating external torque T_{fluct} | 50 | N |
|
||||
| Fluctuating external frequency f_{fluct} | 6 | Hz |
|
||||
| Performance efficiency cp | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal, with $T_{high}=(\varepsilon-1)*T_{mesh}$ and $T_{low}=(2-\varepsilon)*T_{mesh}$. 10% of the start and of the end of the “high” phase is a linear slope from
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
277
config/Typora/draftsRecover/2026-3-19 README 112148.md
Normal file
277
config/Typora/draftsRecover/2026-3-19 README 112148.md
Normal file
|
|
@ -0,0 +1,277 @@
|
|||
---
|
||||
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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ---------------------------------------------- | --------- | --------------- |
|
||||
| \gamma | 0.7 | |
|
||||
| \beta | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number Z1 | 72 | |
|
||||
| Pinion 2 tooth number Z2 | 18 | |
|
||||
| Pinion modulus m_0 | 0.016 | m |
|
||||
| Pinion width b | 0.1 | m |
|
||||
| Internal diameter pinion 1 d_{i1} | 0.5 | m |
|
||||
| Internal diameter pinion 2 d_{i_2} | 0.3 | m |
|
||||
| Input speed N_1 | 17 | m/s |
|
||||
| Contact angle \alpha | 20 | degree |
|
||||
| Steel density \rho_{steel} | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass m_{in} | 54000 | kg |
|
||||
| Output mass m_{out} | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : k_x=k_{x_1}=k_{x_2} | 1e8 | N/m |
|
||||
| Flexion y : k_y=k_{y_1}=k_{y_2} | 1e8 | N/m |
|
||||
| Torsion z : k_\theta=k_{\theta_1}=k_{\theta_2} | 1e5 | N/m |
|
||||
| Mean mesh stiffness k_{mesh_{mean}} | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related \eta | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related \beta | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius r_{blade} | 6 | m |
|
||||
| Air density \rho_{air} | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) v_{wind_{mean}} | 10 | m/s |
|
||||
| Fluctuating external torque T_{fluct} | 50 | N |
|
||||
| Fluctuating external frequency f_{fluct} | 6 | Hz |
|
||||
| Performance efficiency cp | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal between a low value (one t, with $T_{high}=(\varepsilon-1)*T_{mesh}$ and $T_{low}=(2-\varepsilon)*T_{mesh}$. 10% of the start and of the end of the “high” phase is a linear slope from low value to high value.
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
277
config/Typora/draftsRecover/2026-3-19 README 112223.md
Normal file
277
config/Typora/draftsRecover/2026-3-19 README 112223.md
Normal file
|
|
@ -0,0 +1,277 @@
|
|||
---
|
||||
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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ---------------------------------------------- | --------- | --------------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1 | 17 | m/s |
|
||||
| Contact angle \alpha | 20 | degree |
|
||||
| Steel density \rho_{steel} | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass m_{in} | 54000 | kg |
|
||||
| Output mass m_{out} | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : k_x=k_{x_1}=k_{x_2} | 1e8 | N/m |
|
||||
| Flexion y : k_y=k_{y_1}=k_{y_2} | 1e8 | N/m |
|
||||
| Torsion z : k_\theta=k_{\theta_1}=k_{\theta_2} | 1e5 | N/m |
|
||||
| Mean mesh stiffness k_{mesh_{mean}} | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related \eta | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related \beta | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius r_{blade} | 6 | m |
|
||||
| Air density \rho_{air} | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) v_{wind_{mean}} | 10 | m/s |
|
||||
| Fluctuating external torque T_{fluct} | 50 | N |
|
||||
| Fluctuating external frequency f_{fluct} | 6 | Hz |
|
||||
| Performance efficiency cp | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal between a low value (one tooth in contact, , with $T_{high}=(\varepsilon-1)*T_{mesh}$ and $T_{low}=(2-\varepsilon)*T_{mesh}$. 10% of the start and of the end of the “high” phase is a linear slope from low value to high value.
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
277
config/Typora/draftsRecover/2026-3-19 README 112242.md
Normal file
277
config/Typora/draftsRecover/2026-3-19 README 112242.md
Normal file
|
|
@ -0,0 +1,277 @@
|
|||
---
|
||||
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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ------------------------------------------------ | --------- | --------------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : $k_x=k_{x_1}=k_{x_2}$ | 1e8 | N/m |
|
||||
| Flexion y : $k_y=k_{y_1}=k_{y_2}$ | 1e8 | N/m |
|
||||
| Torsion z : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | 1e5 | N/m |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related \eta | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related \beta | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius r_{blade} | 6 | m |
|
||||
| Air density \rho_{air} | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) v_{wind_{mean}} | 10 | m/s |
|
||||
| Fluctuating external torque T_{fluct} | 50 | N |
|
||||
| Fluctuating external frequency f_{fluct} | 6 | Hz |
|
||||
| Performance efficiency cp | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal between a low value (one tooth in contact, , with $T_{high}=(\varepsilon-1)*T_{mesh}$ and $T_{low}=(2-\varepsilon)*T_{mesh}$. 10% of the start and of the end of the “high” phase is a linear slope from low value to high value.
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
277
config/Typora/draftsRecover/2026-3-19 README 112302.md
Normal file
277
config/Typora/draftsRecover/2026-3-19 README 112302.md
Normal file
|
|
@ -0,0 +1,277 @@
|
|||
---
|
||||
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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ------------------------------------------------ | --------- | --------------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : $k_x=k_{x_1}=k_{x_2}$ | 1e8 | N/m |
|
||||
| Flexion y : $k_y=k_{y_1}=k_{y_2}$ | 1e8 | N/m |
|
||||
| Torsion z : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | 1e5 | N/m |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related $\beta$ | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | 6 | m |
|
||||
| Air density $\rho_{air}$ | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | 10 | m/s |
|
||||
| Fluctuating external torque $T_{fluct}$ | 50 | N |
|
||||
| Fluctuating external frequency f_{fluct} | 6 | Hz |
|
||||
| Performance efficiency cp | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal between a low value (one tooth in contact, , with $T_{high}=(\varepsilon-1)*T_{mesh}$ and $T_{low}=(2-\varepsilon)*T_{mesh}$. 10% of the start and of the end of the “high” phase is a linear slope from low value to high value.
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
277
config/Typora/draftsRecover/2026-3-19 README 112342.md
Normal file
277
config/Typora/draftsRecover/2026-3-19 README 112342.md
Normal file
|
|
@ -0,0 +1,277 @@
|
|||
---
|
||||
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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ------------------------------------------------ | --------- | --------------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : $k_x=k_{x_1}=k_{x_2}$ | 1e8 | N/m |
|
||||
| Flexion y : $k_y=k_{y_1}=k_{y_2}$ | 1e8 | N/m |
|
||||
| Torsion z : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | 1e5 | N/m |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related $\beta$ | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | 6 | m |
|
||||
| Air density $\rho_{air}$ | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | 10 | m/s |
|
||||
| Fluctuating external torque $T_{fluct}$ | 50 | N |
|
||||
| Fluctuating external frequency $f_{fluct}$ | 6 | Hz |
|
||||
| Performance efficiency $cp$ | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal between a low value ($=k_{mesh_{mean}}$ for one tooth in contact) , with $T_{high}=(\varepsilon-1)*T_{mesh}$ and $T_{low}=(2-\varepsilon)*T_{mesh}$. 10% of the start and of the end of the “high” phase is a linear slope from low value to high value.
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
277
config/Typora/draftsRecover/2026-3-19 README 112401.md
Normal file
277
config/Typora/draftsRecover/2026-3-19 README 112401.md
Normal file
|
|
@ -0,0 +1,277 @@
|
|||
---
|
||||
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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ------------------------------------------------ | --------- | --------------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : $k_x=k_{x_1}=k_{x_2}$ | 1e8 | N/m |
|
||||
| Flexion y : $k_y=k_{y_1}=k_{y_2}$ | 1e8 | N/m |
|
||||
| Torsion z : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | 1e5 | N/m |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related $\beta$ | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | 6 | m |
|
||||
| Air density $\rho_{air}$ | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | 10 | m/s |
|
||||
| Fluctuating external torque $T_{fluct}$ | 50 | N |
|
||||
| Fluctuating external frequency $f_{fluct}$ | 6 | Hz |
|
||||
| Performance efficiency $cp$ | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal between a low value ($=k_{mesh_{mean}}$ for one tooth in contact) and its dou , with $T_{high}=(\varepsilon-1)*T_{mesh}$ and $T_{low}=(2-\varepsilon)*T_{mesh}$. 10% of the start and of the end of the “high” phase is a linear slope from low value to high value.
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
277
config/Typora/draftsRecover/2026-3-19 README 112419.md
Normal file
277
config/Typora/draftsRecover/2026-3-19 README 112419.md
Normal file
|
|
@ -0,0 +1,277 @@
|
|||
---
|
||||
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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ------------------------------------------------ | --------- | --------------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : $k_x=k_{x_1}=k_{x_2}$ | 1e8 | N/m |
|
||||
| Flexion y : $k_y=k_{y_1}=k_{y_2}$ | 1e8 | N/m |
|
||||
| Torsion z : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | 1e5 | N/m |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related $\beta$ | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | 6 | m |
|
||||
| Air density $\rho_{air}$ | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | 10 | m/s |
|
||||
| Fluctuating external torque $T_{fluct}$ | 50 | N |
|
||||
| Fluctuating external frequency $f_{fluct}$ | 6 | Hz |
|
||||
| Performance efficiency $cp$ | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal between a low value ($=k_{mesh_{mean}}$ for one tooth in contact) and its double value as a high value. Length of both phase is given by ith $T_{high}=(\varepsilon-1)*T_{mesh}$ and $T_{low}=(2-\varepsilon)*T_{mesh}$. 10% of the start and of the end of the “high” phase is a linear slope from low value to high value.
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
279
config/Typora/draftsRecover/2026-3-19 README 112505.md
Normal file
279
config/Typora/draftsRecover/2026-3-19 README 112505.md
Normal file
|
|
@ -0,0 +1,279 @@
|
|||
---
|
||||
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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ------------------------------------------------ | --------- | --------------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : $k_x=k_{x_1}=k_{x_2}$ | 1e8 | N/m |
|
||||
| Flexion y : $k_y=k_{y_1}=k_{y_2}$ | 1e8 | N/m |
|
||||
| Torsion z : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | 1e5 | N/m |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related $\beta$ | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | 6 | m |
|
||||
| Air density $\rho_{air}$ | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | 10 | m/s |
|
||||
| Fluctuating external torque $T_{fluct}$ | 50 | N |
|
||||
| Fluctuating external frequency $f_{fluct}$ | 6 | Hz |
|
||||
| Performance efficiency $cp$ | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal between a low value ($=k_{mesh_{mean}}$ for one tooth in contact) and its double value as a high value. Length of both phase is given by $T_{high}=(\varepsilon-1)*T_{mesh}$ and $T_{low}=(2-\varepsilon)*T_{mesh}$. 10% of the start and of the end of the “high” phase is a linear slope from low value to high value.
|
||||
|
||||
> $T_{mesh}=1/(Z_1)$
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
279
config/Typora/draftsRecover/2026-3-19 README 112525.md
Normal file
279
config/Typora/draftsRecover/2026-3-19 README 112525.md
Normal file
|
|
@ -0,0 +1,279 @@
|
|||
---
|
||||
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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ------------------------------------------------ | --------- | --------------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : $k_x=k_{x_1}=k_{x_2}$ | 1e8 | N/m |
|
||||
| Flexion y : $k_y=k_{y_1}=k_{y_2}$ | 1e8 | N/m |
|
||||
| Torsion z : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | 1e5 | N/m |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related $\beta$ | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | 6 | m |
|
||||
| Air density $\rho_{air}$ | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | 10 | m/s |
|
||||
| Fluctuating external torque $T_{fluct}$ | 50 | N |
|
||||
| Fluctuating external frequency $f_{fluct}$ | 6 | Hz |
|
||||
| Performance efficiency $cp$ | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal between a low value ($=k_{mesh_{mean}}$ for one tooth in contact) and its double value as a high value. Length of both phase is given by $T_{high}=(\varepsilon-1)*T_{mesh}$ and $T_{low}=(2-\varepsilon)*T_{mesh}$. 10% of the start and of the end of the “high” phase is a linear slope from low value to high value.
|
||||
|
||||
> $T_{mesh}=1/f_{mesh=1/(Z1*N1/60)$
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
282
config/Typora/draftsRecover/2026-3-19 README 112612.md
Normal file
282
config/Typora/draftsRecover/2026-3-19 README 112612.md
Normal file
|
|
@ -0,0 +1,282 @@
|
|||
---
|
||||
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
|
||||
- [ ] Images
|
||||
- [ ] 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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ------------------------------------------------ | --------- | --------------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : $k_x=k_{x_1}=k_{x_2}$ | 1e8 | N/m |
|
||||
| Flexion y : $k_y=k_{y_1}=k_{y_2}$ | 1e8 | N/m |
|
||||
| Torsion z : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | 1e5 | N/m |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related $\beta$ | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | 6 | m |
|
||||
| Air density $\rho_{air}$ | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | 10 | m/s |
|
||||
| Fluctuating external torque $T_{fluct}$ | 50 | N |
|
||||
| Fluctuating external frequency $f_{fluct}$ | 6 | Hz |
|
||||
| Performance efficiency $cp$ | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal between a low value ($=k_{mesh_{mean}}$ for one tooth in contact) and its double value as a high value. Length of both phase is given by $T_{high}=(\varepsilon-1)*T_{mesh}$ and $T_{low}=(2-\varepsilon)*T_{mesh}$. 10% of the start and of the end of the “high” phase is a linear slope from low value to high value.
|
||||
|
||||
> $T_{mesh}=1/f_{mesh}=1/(Z1*N1/60)$
|
||||
|
||||
|
||||
|
||||
## TO FIX
|
||||
|
||||
> [!CAUTION]
|
||||
> ...
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
282
config/Typora/draftsRecover/2026-3-19 README 113027.md
Normal file
282
config/Typora/draftsRecover/2026-3-19 README 113027.md
Normal file
|
|
@ -0,0 +1,282 @@
|
|||
---
|
||||
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
|
||||
- [ ] Images
|
||||
- [ ] 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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ------------------------------------------------ | --------- | --------------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : $k_x=k_{x_1}=k_{x_2}$ | 1e8 | N/m |
|
||||
| Flexion y : $k_y=k_{y_1}=k_{y_2}$ | 1e8 | N/m |
|
||||
| Torsion z : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | 1e5 | N/m |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related $\beta$ | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | 6 | m |
|
||||
| Air density $\rho_{air}$ | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | 10 | m/s |
|
||||
| Fluctuating external torque $T_{fluct}$ | 50 | N |
|
||||
| Fluctuating external frequency $f_{fluct}$ | 6 | Hz |
|
||||
| Performance efficiency $cp$ | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal between a low value ($=k_{mesh_{mean}}$ for one tooth in contact) and its double value as a high value. Length of both phase is given by $T_{high}=(\varepsilon-1)*T_{mesh}$ and $T_{low}=(2-\varepsilon)*T_{mesh}$. 10% of the start and of the end of the “high” phase is a linear slope from low value to high value.
|
||||
|
||||
> $T_{mesh}=1/f_{mesh}=1/(Z1*N1/60)$
|
||||
>
|
||||
> $\varepsilon$ is an approxi
|
||||
|
||||
## TO FIX
|
||||
|
||||
> [!CAUTION]
|
||||
> ...
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
286
config/Typora/draftsRecover/2026-3-19 README 113045.md
Normal file
286
config/Typora/draftsRecover/2026-3-19 README 113045.md
Normal file
|
|
@ -0,0 +1,286 @@
|
|||
---
|
||||
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
|
||||
- [ ] Images
|
||||
- [ ] 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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ------------------------------------------------ | --------- | --------------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : $k_x=k_{x_1}=k_{x_2}$ | 1e8 | N/m |
|
||||
| Flexion y : $k_y=k_{y_1}=k_{y_2}$ | 1e8 | N/m |
|
||||
| Torsion z : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | 1e5 | N/m |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related $\beta$ | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | 6 | m |
|
||||
| Air density $\rho_{air}$ | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | 10 | m/s |
|
||||
| Fluctuating external torque $T_{fluct}$ | 50 | N |
|
||||
| Fluctuating external frequency $f_{fluct}$ | 6 | Hz |
|
||||
| Performance efficiency $cp$ | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal between a low value ($=k_{mesh_{mean}}$ for one tooth in contact) and its double value as a high value. Length of both phase is given by $T_{high}=(\varepsilon-1)*T_{mesh}$ and $T_{low}=(2-\varepsilon)*T_{mesh}$. 10% of the start and of the end of the “high” phase is a linear slope from low value to high value.
|
||||
|
||||
> $T_{mesh}=1/f_{mesh}=1/(Z1*N1/60)$
|
||||
>
|
||||
> $\varepsilon$ is an approximation using the following formula :
|
||||
> $$
|
||||
> c1
|
||||
> $$
|
||||
>
|
||||
|
||||
## TO FIX
|
||||
|
||||
> [!CAUTION]
|
||||
> ...
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
286
config/Typora/draftsRecover/2026-3-19 README 113138.md
Normal file
286
config/Typora/draftsRecover/2026-3-19 README 113138.md
Normal file
|
|
@ -0,0 +1,286 @@
|
|||
---
|
||||
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
|
||||
- [ ] Images
|
||||
- [ ] 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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ------------------------------------------------ | --------- | --------------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : $k_x=k_{x_1}=k_{x_2}$ | 1e8 | N/m |
|
||||
| Flexion y : $k_y=k_{y_1}=k_{y_2}$ | 1e8 | N/m |
|
||||
| Torsion z : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | 1e5 | N/m |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related $\beta$ | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | 6 | m |
|
||||
| Air density $\rho_{air}$ | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | 10 | m/s |
|
||||
| Fluctuating external torque $T_{fluct}$ | 50 | N |
|
||||
| Fluctuating external frequency $f_{fluct}$ | 6 | Hz |
|
||||
| Performance efficiency $cp$ | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal between a low value ($=k_{mesh_{mean}}$ for one tooth in contact) and its double value as a high value. Length of both phase is given by $T_{high}=(\varepsilon-1)*T_{mesh}$ and $T_{low}=(2-\varepsilon)*T_{mesh}$. 10% of the start and of the end of the “high” phase is a linear slope from low value to high value.
|
||||
|
||||
> $T_{mesh}=1/f_{mesh}=1/(Z1*N1/60)$
|
||||
>
|
||||
> $\varepsilon$ is an approximation using the following formula :
|
||||
> $$
|
||||
> c_1=(1+(1/Z1))/(\pi *cos(\alpha)*((sin(\alpha)/2+\sqrt{sin(alp)})))
|
||||
> $$
|
||||
>
|
||||
|
||||
## TO FIX
|
||||
|
||||
> [!CAUTION]
|
||||
> ...
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
286
config/Typora/draftsRecover/2026-3-19 README 113219.md
Normal file
286
config/Typora/draftsRecover/2026-3-19 README 113219.md
Normal file
|
|
@ -0,0 +1,286 @@
|
|||
---
|
||||
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
|
||||
- [ ] Images
|
||||
- [ ] 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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ------------------------------------------------ | --------- | --------------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : $k_x=k_{x_1}=k_{x_2}$ | 1e8 | N/m |
|
||||
| Flexion y : $k_y=k_{y_1}=k_{y_2}$ | 1e8 | N/m |
|
||||
| Torsion z : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | 1e5 | N/m |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related $\beta$ | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | 6 | m |
|
||||
| Air density $\rho_{air}$ | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | 10 | m/s |
|
||||
| Fluctuating external torque $T_{fluct}$ | 50 | N |
|
||||
| Fluctuating external frequency $f_{fluct}$ | 6 | Hz |
|
||||
| Performance efficiency $cp$ | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal between a low value ($=k_{mesh_{mean}}$ for one tooth in contact) and its double value as a high value. Length of both phase is given by $T_{high}=(\varepsilon-1)*T_{mesh}$ and $T_{low}=(2-\varepsilon)*T_{mesh}$. 10% of the start and of the end of the “high” phase is a linear slope from low value to high value.
|
||||
|
||||
> $T_{mesh}=1/f_{mesh}=1/(Z1*N1/60)$
|
||||
>
|
||||
> $\varepsilon$ is an approximation using the following formula :
|
||||
> $$
|
||||
> c_1=\frac{(1+(1/Z1))/(\pi *cos(\alpha)*((sin(\alpha)/2+\sqrt{sin(\alpha)^2/4+1/(Z1^2)+1/Z1})))
|
||||
> $$
|
||||
>
|
||||
|
||||
## TO FIX
|
||||
|
||||
> [!CAUTION]
|
||||
> ...
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
286
config/Typora/draftsRecover/2026-3-19 README 113523.md
Normal file
286
config/Typora/draftsRecover/2026-3-19 README 113523.md
Normal file
|
|
@ -0,0 +1,286 @@
|
|||
---
|
||||
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
|
||||
- [ ] Images
|
||||
- [ ] 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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ------------------------------------------------ | --------- | --------------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : $k_x=k_{x_1}=k_{x_2}$ | 1e8 | N/m |
|
||||
| Flexion y : $k_y=k_{y_1}=k_{y_2}$ | 1e8 | N/m |
|
||||
| Torsion z : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | 1e5 | N/m |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related $\beta$ | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | 6 | m |
|
||||
| Air density $\rho_{air}$ | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | 10 | m/s |
|
||||
| Fluctuating external torque $T_{fluct}$ | 50 | N |
|
||||
| Fluctuating external frequency $f_{fluct}$ | 6 | Hz |
|
||||
| Performance efficiency $cp$ | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal between a low value ($=k_{mesh_{mean}}$ for one tooth in contact) and its double value as a high value. Length of both phase is given by $T_{high}=(\varepsilon-1)*T_{mesh}$ and $T_{low}=(2-\varepsilon)*T_{mesh}$. 10% of the start and of the end of the “high” phase is a linear slope from low value to high value.
|
||||
|
||||
> $T_{mesh}=1/f_{mesh}=1/(Z1*N1/60)$
|
||||
>
|
||||
> $\varepsilon$ is an approximation using the following formula :
|
||||
> $$
|
||||
> c_1=\frac{1+\frac{1}{Z1}}{(\pi *cos(\alpha)*(\frasin(\alpha)/2+\sqrt{sin(\alpha)^2/4+1/(Z1^2)+1/Z1})))}
|
||||
> $$
|
||||
>
|
||||
|
||||
## TO FIX
|
||||
|
||||
> [!CAUTION]
|
||||
> ...
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
286
config/Typora/draftsRecover/2026-3-19 README 113609.md
Normal file
286
config/Typora/draftsRecover/2026-3-19 README 113609.md
Normal file
|
|
@ -0,0 +1,286 @@
|
|||
---
|
||||
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
|
||||
- [ ] Images
|
||||
- [ ] 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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ------------------------------------------------ | --------- | --------------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : $k_x=k_{x_1}=k_{x_2}$ | 1e8 | N/m |
|
||||
| Flexion y : $k_y=k_{y_1}=k_{y_2}$ | 1e8 | N/m |
|
||||
| Torsion z : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | 1e5 | N/m |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related $\beta$ | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | 6 | m |
|
||||
| Air density $\rho_{air}$ | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | 10 | m/s |
|
||||
| Fluctuating external torque $T_{fluct}$ | 50 | N |
|
||||
| Fluctuating external frequency $f_{fluct}$ | 6 | Hz |
|
||||
| Performance efficiency $cp$ | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal between a low value ($=k_{mesh_{mean}}$ for one tooth in contact) and its double value as a high value. Length of both phase is given by $T_{high}=(\varepsilon-1)*T_{mesh}$ and $T_{low}=(2-\varepsilon)*T_{mesh}$. 10% of the start and of the end of the “high” phase is a linear slope from low value to high value.
|
||||
|
||||
> $T_{mesh}=1/f_{mesh}=1/(Z1*N1/60)$
|
||||
>
|
||||
> $\varepsilon$ is an approximation using the following formula :
|
||||
> $$
|
||||
> c_1=\frac{1+\frac{1}{Z1}}{(\pi cos(\alpha)(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{/4+1/(Z1^2)+1/Z1})))}
|
||||
> $$
|
||||
>
|
||||
|
||||
## TO FIX
|
||||
|
||||
> [!CAUTION]
|
||||
> ...
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
286
config/Typora/draftsRecover/2026-3-19 README 113629.md
Normal file
286
config/Typora/draftsRecover/2026-3-19 README 113629.md
Normal file
|
|
@ -0,0 +1,286 @@
|
|||
---
|
||||
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
|
||||
- [ ] Images
|
||||
- [ ] 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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ------------------------------------------------ | --------- | --------------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : $k_x=k_{x_1}=k_{x_2}$ | 1e8 | N/m |
|
||||
| Flexion y : $k_y=k_{y_1}=k_{y_2}$ | 1e8 | N/m |
|
||||
| Torsion z : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | 1e5 | N/m |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related $\beta$ | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | 6 | m |
|
||||
| Air density $\rho_{air}$ | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | 10 | m/s |
|
||||
| Fluctuating external torque $T_{fluct}$ | 50 | N |
|
||||
| Fluctuating external frequency $f_{fluct}$ | 6 | Hz |
|
||||
| Performance efficiency $cp$ | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal between a low value ($=k_{mesh_{mean}}$ for one tooth in contact) and its double value as a high value. Length of both phase is given by $T_{high}=(\varepsilon-1)*T_{mesh}$ and $T_{low}=(2-\varepsilon)*T_{mesh}$. 10% of the start and of the end of the “high” phase is a linear slope from low value to high value.
|
||||
|
||||
> $T_{mesh}=1/f_{mesh}=1/(Z1*N1/60)$
|
||||
>
|
||||
> $\varepsilon$ is an approximation using the following formula :
|
||||
> $$
|
||||
> c_1=\frac{1+\frac{1}{Z1}}{(\pi cos(\alpha)(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z1^2}+1/Z1})))}
|
||||
> $$
|
||||
>
|
||||
|
||||
## TO FIX
|
||||
|
||||
> [!CAUTION]
|
||||
> ...
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
286
config/Typora/draftsRecover/2026-3-19 README 113659.md
Normal file
286
config/Typora/draftsRecover/2026-3-19 README 113659.md
Normal file
|
|
@ -0,0 +1,286 @@
|
|||
---
|
||||
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
|
||||
- [ ] Images
|
||||
- [ ] 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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ------------------------------------------------ | --------- | --------------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : $k_x=k_{x_1}=k_{x_2}$ | 1e8 | N/m |
|
||||
| Flexion y : $k_y=k_{y_1}=k_{y_2}$ | 1e8 | N/m |
|
||||
| Torsion z : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | 1e5 | N/m |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related $\beta$ | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | 6 | m |
|
||||
| Air density $\rho_{air}$ | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | 10 | m/s |
|
||||
| Fluctuating external torque $T_{fluct}$ | 50 | N |
|
||||
| Fluctuating external frequency $f_{fluct}$ | 6 | Hz |
|
||||
| Performance efficiency $cp$ | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal between a low value ($=k_{mesh_{mean}}$ for one tooth in contact) and its double value as a high value. Length of both phase is given by $T_{high}=(\varepsilon-1)*T_{mesh}$ and $T_{low}=(2-\varepsilon)*T_{mesh}$. 10% of the start and of the end of the “high” phase is a linear slope from low value to high value.
|
||||
|
||||
> $T_{mesh}=1/f_{mesh}=1/(Z1*N1/60)$
|
||||
>
|
||||
> $\varepsilon$ is an approximation using the following formula :
|
||||
> $$
|
||||
> c_1=\frac{1+\frac{1}{Z1}}{(\pi cos(\alpha)(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z1^2}+\frac{1}{Z1}}}
|
||||
> $$
|
||||
>
|
||||
|
||||
## TO FIX
|
||||
|
||||
> [!CAUTION]
|
||||
> ...
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
286
config/Typora/draftsRecover/2026-3-19 README 113758.md
Normal file
286
config/Typora/draftsRecover/2026-3-19 README 113758.md
Normal file
|
|
@ -0,0 +1,286 @@
|
|||
---
|
||||
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
|
||||
- [ ] Images
|
||||
- [ ] 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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ------------------------------------------------ | --------- | --------------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : $k_x=k_{x_1}=k_{x_2}$ | 1e8 | N/m |
|
||||
| Flexion y : $k_y=k_{y_1}=k_{y_2}$ | 1e8 | N/m |
|
||||
| Torsion z : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | 1e5 | N/m |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related $\beta$ | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | 6 | m |
|
||||
| Air density $\rho_{air}$ | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | 10 | m/s |
|
||||
| Fluctuating external torque $T_{fluct}$ | 50 | N |
|
||||
| Fluctuating external frequency $f_{fluct}$ | 6 | Hz |
|
||||
| Performance efficiency $cp$ | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal between a low value ($=k_{mesh_{mean}}$ for one tooth in contact) and its double value as a high value. Length of both phase is given by $T_{high}=(\varepsilon-1)*T_{mesh}$ and $T_{low}=(2-\varepsilon)*T_{mesh}$. 10% of the start and of the end of the “high” phase is a linear slope from low value to high value.
|
||||
|
||||
> $T_{mesh}=1/f_{mesh}=1/(Z1*N1/60)$
|
||||
>
|
||||
> $\varepsilon$ is an approximation using the following formula :
|
||||
> $$
|
||||
> c_1=\frac{1+\frac{1}{Z1}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z1^2}+\frac{1}{Z1}}\right)\right)}
|
||||
> $$
|
||||
>
|
||||
|
||||
## TO FIX
|
||||
|
||||
> [!CAUTION]
|
||||
> ...
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
288
config/Typora/draftsRecover/2026-3-19 README 113836.md
Normal file
288
config/Typora/draftsRecover/2026-3-19 README 113836.md
Normal file
|
|
@ -0,0 +1,288 @@
|
|||
---
|
||||
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
|
||||
- [ ] Images
|
||||
- [ ] 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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ------------------------------------------------ | --------- | --------------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : $k_x=k_{x_1}=k_{x_2}$ | 1e8 | N/m |
|
||||
| Flexion y : $k_y=k_{y_1}=k_{y_2}$ | 1e8 | N/m |
|
||||
| Torsion z : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | 1e5 | N/m |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related $\beta$ | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | 6 | m |
|
||||
| Air density $\rho_{air}$ | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | 10 | m/s |
|
||||
| Fluctuating external torque $T_{fluct}$ | 50 | N |
|
||||
| Fluctuating external frequency $f_{fluct}$ | 6 | Hz |
|
||||
| Performance efficiency $cp$ | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal between a low value ($=k_{mesh_{mean}}$ for one tooth in contact) and its double value as a high value. Length of both phase is given by $T_{high}=(\varepsilon-1)*T_{mesh}$ and $T_{low}=(2-\varepsilon)*T_{mesh}$. 10% of the start and of the end of the “high” phase is a linear slope from low value to high value.
|
||||
|
||||
> $T_{mesh}=1/f_{mesh}=1/(Z1*N1/60)$
|
||||
>
|
||||
> $\varepsilon$ is an approximation using the following formula :
|
||||
> $$
|
||||
> c_1=\frac{1+\frac{1}{Z1}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z1^2}+\frac{1}{Z1}}\right)\right)} \\
|
||||
> c_1=\frac{1+\frac{1}{Z1}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z1^2}+\frac{1}{Z1}}\right)\right)} \\
|
||||
> c_{12}=c_1+c_2\approx \epsilon
|
||||
> $$
|
||||
>
|
||||
|
||||
## TO FIX
|
||||
|
||||
> [!CAUTION]
|
||||
> ...
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
292
config/Typora/draftsRecover/2026-3-19 README 113937.md
Normal file
292
config/Typora/draftsRecover/2026-3-19 README 113937.md
Normal file
|
|
@ -0,0 +1,292 @@
|
|||
---
|
||||
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
|
||||
- [ ] Images
|
||||
- [ ] 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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ------------------------------------------------ | --------- | --------------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : $k_x=k_{x_1}=k_{x_2}$ | 1e8 | N/m |
|
||||
| Flexion y : $k_y=k_{y_1}=k_{y_2}$ | 1e8 | N/m |
|
||||
| Torsion z : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | 1e5 | N/m |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related $\beta$ | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | 6 | m |
|
||||
| Air density $\rho_{air}$ | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | 10 | m/s |
|
||||
| Fluctuating external torque $T_{fluct}$ | 50 | N |
|
||||
| Fluctuating external frequency $f_{fluct}$ | 6 | Hz |
|
||||
| Performance efficiency $cp$ | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal between a low value ($=k_{mesh_{mean}}$ for one tooth in contact) and its double value as a high value. Length of both phase is given by $T_{high}=(\varepsilon-1)*T_{mesh}$ and $T_{low}=(2-\varepsilon)*T_{mesh}$. 10% of the start and of the end of the “high” phase is a linear slope from low value to high value.
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> $T_{mesh}=1/f_{mesh}=1/(Z1*N1/60)$
|
||||
>
|
||||
> $\varepsilon$ is an approximation using the following formula :
|
||||
> $$
|
||||
> c_1=\frac{1+\frac{1}{Z1}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z1^2}+\frac{1}{Z1}}\right)\right)} \\
|
||||
> c_1=\frac{1+\frac{1}{Z2}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z2^2}+\frac{1}{Z2}}\right)\right)} \\
|
||||
> c_{12}=c_1+c_2\approx \epsilon
|
||||
> $$
|
||||
>
|
||||
|
||||
|
||||
|
||||
## TO FIX
|
||||
|
||||
> [!CAUTION]
|
||||
> ...
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
294
config/Typora/draftsRecover/2026-3-19 README 114002.md
Normal file
294
config/Typora/draftsRecover/2026-3-19 README 114002.md
Normal file
|
|
@ -0,0 +1,294 @@
|
|||
---
|
||||
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
|
||||
- [ ] Images
|
||||
- [ ] 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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ------------------------------------------------ | --------- | --------------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : $k_x=k_{x_1}=k_{x_2}$ | 1e8 | N/m |
|
||||
| Flexion y : $k_y=k_{y_1}=k_{y_2}$ | 1e8 | N/m |
|
||||
| Torsion z : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | 1e5 | N/m |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related $\beta$ | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | 6 | m |
|
||||
| Air density $\rho_{air}$ | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | 10 | m/s |
|
||||
| Fluctuating external torque $T_{fluct}$ | 50 | N |
|
||||
| Fluctuating external frequency $f_{fluct}$ | 6 | Hz |
|
||||
| Performance efficiency $cp$ | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal between a low value ($=k_{mesh_{mean}}$ for one tooth in contact) and its double value as a high value. Length of both phase is given by $T_{high}=(\varepsilon-1)*T_{mesh}$ and $T_{low}=(2-\varepsilon)*T_{mesh}$. 10% of the start and of the end of the “high” phase is a linear slope from low value to high value.
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> $T_{mesh}=1/f_{mesh}=1/(Z1*N1/60)$
|
||||
>
|
||||
> $\varepsilon$ is an approximation using the following formula :
|
||||
> $$
|
||||
> c_1=\frac{1+\frac{1}{Z1}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z1^2}+\frac{1}{Z1}}\right)\right)} \\
|
||||
> c_1=\frac{1+\frac{1}{Z2}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z2^2}+\frac{1}{Z2}}\right)\right)} \\
|
||||
> c_{12}=c_1+c_2\approx \epsilon
|
||||
> $$
|
||||
>
|
||||
|
||||
## Model
|
||||
|
||||
**Time**
|
||||
|
||||
## TO FIX
|
||||
|
||||
> [!CAUTION]
|
||||
> ...
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
294
config/Typora/draftsRecover/2026-3-19 README 114100.md
Normal file
294
config/Typora/draftsRecover/2026-3-19 README 114100.md
Normal file
|
|
@ -0,0 +1,294 @@
|
|||
---
|
||||
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
|
||||
- [ ] Images
|
||||
- [ ] 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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ------------------------------------------------ | --------- | --------------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : $k_x=k_{x_1}=k_{x_2}$ | 1e8 | N/m |
|
||||
| Flexion y : $k_y=k_{y_1}=k_{y_2}$ | 1e8 | N/m |
|
||||
| Torsion z : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | 1e5 | N/m |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related $\beta$ | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | 6 | m |
|
||||
| Air density $\rho_{air}$ | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | 10 | m/s |
|
||||
| Fluctuating external torque $T_{fluct}$ | 50 | N |
|
||||
| Fluctuating external frequency $f_{fluct}$ | 6 | Hz |
|
||||
| Performance efficiency $cp$ | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal between a low value ($=k_{mesh_{mean}}$ for one tooth in contact) and its double value as a high value. Length of both phase is given by $T_{high}=(\varepsilon-1)*T_{mesh}$ and $T_{low}=(2-\varepsilon)*T_{mesh}$. 10% of the start and of the end of the “high” phase is a linear slope from low value to high value.
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> $T_{mesh}=1/f_{mesh}=1/(Z1*N1/60)$
|
||||
>
|
||||
> $\varepsilon$ is an approximation using the following formula :
|
||||
> $$
|
||||
> c_1=\frac{1+\frac{1}{Z1}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z1^2}+\frac{1}{Z1}}\right)\right)} \\
|
||||
> c_1=\frac{1+\frac{1}{Z2}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z2^2}+\frac{1}{Z2}}\right)\right)} \\
|
||||
> c_{12}=c_1+c_2\approx \epsilon
|
||||
> $$
|
||||
>
|
||||
|
||||
## Model
|
||||
|
||||
**Time :** time is sampled
|
||||
|
||||
## TO FIX
|
||||
|
||||
> [!CAUTION]
|
||||
> ...
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
294
config/Typora/draftsRecover/2026-3-19 README 114126.md
Normal file
294
config/Typora/draftsRecover/2026-3-19 README 114126.md
Normal file
|
|
@ -0,0 +1,294 @@
|
|||
---
|
||||
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
|
||||
- [ ] Images
|
||||
- [ ] 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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ------------------------------------------------ | --------- | --------------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : $k_x=k_{x_1}=k_{x_2}$ | 1e8 | N/m |
|
||||
| Flexion y : $k_y=k_{y_1}=k_{y_2}$ | 1e8 | N/m |
|
||||
| Torsion z : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | 1e5 | N/m |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related $\beta$ | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | 6 | m |
|
||||
| Air density $\rho_{air}$ | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | 10 | m/s |
|
||||
| Fluctuating external torque $T_{fluct}$ | 50 | N |
|
||||
| Fluctuating external frequency $f_{fluct}$ | 6 | Hz |
|
||||
| Performance efficiency $cp$ | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal between a low value ($=k_{mesh_{mean}}$ for one tooth in contact) and its double value as a high value. Length of both phase is given by $T_{high}=(\varepsilon-1)*T_{mesh}$ and $T_{low}=(2-\varepsilon)*T_{mesh}$. 10% of the start and of the end of the “high” phase is a linear slope from low value to high value.
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> $T_{mesh}=1/f_{mesh}=1/(Z1*N1/60)$
|
||||
>
|
||||
> $\varepsilon$ is an approximation using the following formula :
|
||||
> $$
|
||||
> c_1=\frac{1+\frac{1}{Z1}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z1^2}+\frac{1}{Z1}}\right)\right)} \\
|
||||
> c_1=\frac{1+\frac{1}{Z2}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z2^2}+\frac{1}{Z2}}\right)\right)} \\
|
||||
> c_{12}=c_1+c_2\approx \epsilon
|
||||
> $$
|
||||
>
|
||||
|
||||
## Model
|
||||
|
||||
**Time :** time is sampled on the $T_{mesh}$,
|
||||
|
||||
## TO FIX
|
||||
|
||||
> [!CAUTION]
|
||||
> ...
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
294
config/Typora/draftsRecover/2026-3-19 README 114147.md
Normal file
294
config/Typora/draftsRecover/2026-3-19 README 114147.md
Normal file
|
|
@ -0,0 +1,294 @@
|
|||
---
|
||||
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
|
||||
- [ ] Images
|
||||
- [ ] 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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ------------------------------------------------ | --------- | --------------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : $k_x=k_{x_1}=k_{x_2}$ | 1e8 | N/m |
|
||||
| Flexion y : $k_y=k_{y_1}=k_{y_2}$ | 1e8 | N/m |
|
||||
| Torsion z : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | 1e5 | N/m |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related $\beta$ | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | 6 | m |
|
||||
| Air density $\rho_{air}$ | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | 10 | m/s |
|
||||
| Fluctuating external torque $T_{fluct}$ | 50 | N |
|
||||
| Fluctuating external frequency $f_{fluct}$ | 6 | Hz |
|
||||
| Performance efficiency $cp$ | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal between a low value ($=k_{mesh_{mean}}$ for one tooth in contact) and its double value as a high value. Length of both phase is given by $T_{high}=(\varepsilon-1)*T_{mesh}$ and $T_{low}=(2-\varepsilon)*T_{mesh}$. 10% of the start and of the end of the “high” phase is a linear slope from low value to high value.
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> $T_{mesh}=1/f_{mesh}=1/(Z1*N1/60)$
|
||||
>
|
||||
> $\varepsilon$ is an approximation using the following formula :
|
||||
> $$
|
||||
> c_1=\frac{1+\frac{1}{Z1}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z1^2}+\frac{1}{Z1}}\right)\right)} \\
|
||||
> c_1=\frac{1+\frac{1}{Z2}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z2^2}+\frac{1}{Z2}}\right)\right)} \\
|
||||
> c_{12}=c_1+c_2\approx \epsilon
|
||||
> $$
|
||||
>
|
||||
|
||||
## Model
|
||||
|
||||
**Time :** time is sampled on the $T_{mesh}$, with $fs$ the number of
|
||||
|
||||
## TO FIX
|
||||
|
||||
> [!CAUTION]
|
||||
> ...
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
294
config/Typora/draftsRecover/2026-3-19 README 114212.md
Normal file
294
config/Typora/draftsRecover/2026-3-19 README 114212.md
Normal file
|
|
@ -0,0 +1,294 @@
|
|||
---
|
||||
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
|
||||
- [ ] Images
|
||||
- [ ] 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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ------------------------------------------------ | --------- | --------------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : $k_x=k_{x_1}=k_{x_2}$ | 1e8 | N/m |
|
||||
| Flexion y : $k_y=k_{y_1}=k_{y_2}$ | 1e8 | N/m |
|
||||
| Torsion z : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | 1e5 | N/m |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related $\beta$ | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | 6 | m |
|
||||
| Air density $\rho_{air}$ | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | 10 | m/s |
|
||||
| Fluctuating external torque $T_{fluct}$ | 50 | N |
|
||||
| Fluctuating external frequency $f_{fluct}$ | 6 | Hz |
|
||||
| Performance efficiency $cp$ | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal between a low value ($=k_{mesh_{mean}}$ for one tooth in contact) and its double value as a high value. Length of both phase is given by $T_{high}=(\varepsilon-1)*T_{mesh}$ and $T_{low}=(2-\varepsilon)*T_{mesh}$. 10% of the start and of the end of the “high” phase is a linear slope from low value to high value.
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> $T_{mesh}=1/f_{mesh}=1/(Z1*N1/60)$
|
||||
>
|
||||
> $\varepsilon$ is an approximation using the following formula :
|
||||
> $$
|
||||
> c_1=\frac{1+\frac{1}{Z1}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z1^2}+\frac{1}{Z1}}\right)\right)} \\
|
||||
> c_1=\frac{1+\frac{1}{Z2}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z2^2}+\frac{1}{Z2}}\right)\right)} \\
|
||||
> c_{12}=c_1+c_2\approx \epsilon
|
||||
> $$
|
||||
>
|
||||
|
||||
## Model
|
||||
|
||||
**Time :** time is sampled on the $T_{mesh}$, with $fs$ the number of points for each period, and $n_{periods}$ the number of periods calculated.
|
||||
|
||||
## TO FIX
|
||||
|
||||
> [!CAUTION]
|
||||
> ...
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
294
config/Typora/draftsRecover/2026-3-19 README 114227.md
Normal file
294
config/Typora/draftsRecover/2026-3-19 README 114227.md
Normal file
|
|
@ -0,0 +1,294 @@
|
|||
---
|
||||
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
|
||||
- [ ] Images
|
||||
- [ ] 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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ------------------------------------------------ | --------- | --------------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : $k_x=k_{x_1}=k_{x_2}$ | 1e8 | N/m |
|
||||
| Flexion y : $k_y=k_{y_1}=k_{y_2}$ | 1e8 | N/m |
|
||||
| Torsion z : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | 1e5 | N/m |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related $\beta$ | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | 6 | m |
|
||||
| Air density $\rho_{air}$ | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | 10 | m/s |
|
||||
| Fluctuating external torque $T_{fluct}$ | 50 | N |
|
||||
| Fluctuating external frequency $f_{fluct}$ | 6 | Hz |
|
||||
| Performance efficiency $cp$ | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal between a low value ($=k_{mesh_{mean}}$ for one tooth in contact) and its double value as a high value. Length of both phase is given by $T_{high}=(\varepsilon-1)*T_{mesh}$ and $T_{low}=(2-\varepsilon)*T_{mesh}$. 10% of the start and of the end of the “high” phase is a linear slope from low value to high value.
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> $T_{mesh}=1/f_{mesh}=1/(Z1*N1/60)$
|
||||
>
|
||||
> $\varepsilon$ is an approximation using the following formula :
|
||||
> $$
|
||||
> c_1=\frac{1+\frac{1}{Z1}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z1^2}+\frac{1}{Z1}}\right)\right)} \\
|
||||
> c_1=\frac{1+\frac{1}{Z2}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z2^2}+\frac{1}{Z2}}\right)\right)} \\
|
||||
> c_{12}=c_1+c_2\approx \epsilon
|
||||
> $$
|
||||
>
|
||||
|
||||
## Model
|
||||
|
||||
**Time :** time is sampled on the $T_{mesh}$, with $fs$ the number of points for each period, and $n_{periods}$ the number of periods calculated. The number of points is $fs*n_$
|
||||
|
||||
## TO FIX
|
||||
|
||||
> [!CAUTION]
|
||||
> ...
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
294
config/Typora/draftsRecover/2026-3-19 README 114310.md
Normal file
294
config/Typora/draftsRecover/2026-3-19 README 114310.md
Normal file
|
|
@ -0,0 +1,294 @@
|
|||
---
|
||||
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
|
||||
- [ ] Images
|
||||
- [ ] 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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ------------------------------------------------ | --------- | --------------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : $k_x=k_{x_1}=k_{x_2}$ | 1e8 | N/m |
|
||||
| Flexion y : $k_y=k_{y_1}=k_{y_2}$ | 1e8 | N/m |
|
||||
| Torsion z : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | 1e5 | N/m |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related $\beta$ | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | 6 | m |
|
||||
| Air density $\rho_{air}$ | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | 10 | m/s |
|
||||
| Fluctuating external torque $T_{fluct}$ | 50 | N |
|
||||
| Fluctuating external frequency $f_{fluct}$ | 6 | Hz |
|
||||
| Performance efficiency $cp$ | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal between a low value ($=k_{mesh_{mean}}$ for one tooth in contact) and its double value as a high value. Length of both phase is given by $T_{high}=(\varepsilon-1)T_{mesh}$ and $T_{low}=(2-\varepsilon)T_{mesh}$. 10% of the start and of the end of the “high” phase is a linear slope from low value to high value.
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> $T_{mesh}=1/f_{mesh}=1/(Z1*N1/60)$
|
||||
>
|
||||
> $\varepsilon$ is an approximation using the following formula :
|
||||
> $$
|
||||
> c_1=\frac{1+\frac{1}{Z1}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z1^2}+\frac{1}{Z1}}\right)\right)} \\
|
||||
> c_1=\frac{1+\frac{1}{Z2}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z2^2}+\frac{1}{Z2}}\right)\right)} \\
|
||||
> c_{12}=c_1+c_2\approx \epsilon
|
||||
> $$
|
||||
>
|
||||
|
||||
## Model
|
||||
|
||||
**Time :** time is sampled on the $T_{mesh}$, with $fs$ the number of points for each period, and $n_{periods}$ the number of periods calculated. The number of points is $fs\times n_{periods}$.
|
||||
|
||||
## TO FIX
|
||||
|
||||
> [!CAUTION]
|
||||
> ...
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
296
config/Typora/draftsRecover/2026-3-19 README 114358.md
Normal file
296
config/Typora/draftsRecover/2026-3-19 README 114358.md
Normal file
|
|
@ -0,0 +1,296 @@
|
|||
---
|
||||
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
|
||||
- [ ] Images
|
||||
- [ ] 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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ------------------------------------------------ | --------- | --------------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : $k_x=k_{x_1}=k_{x_2}$ | 1e8 | N/m |
|
||||
| Flexion y : $k_y=k_{y_1}=k_{y_2}$ | 1e8 | N/m |
|
||||
| Torsion z : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | 1e5 | N/m |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related $\beta$ | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | 6 | m |
|
||||
| Air density $\rho_{air}$ | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | 10 | m/s |
|
||||
| Fluctuating external torque $T_{fluct}$ | 50 | N |
|
||||
| Fluctuating external frequency $f_{fluct}$ | 6 | Hz |
|
||||
| Performance efficiency $cp$ | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal between a low value ($=k_{mesh_{mean}}$ for one tooth in contact) and its double value as a high value. Length of both phase is given by $T_{high}=(\varepsilon-1)T_{mesh}$ and $T_{low}=(2-\varepsilon)T_{mesh}$. 10% of the start and of the end of the “high” phase is a linear slope from low value to high value.
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> $T_{mesh}=1/f_{mesh}=1/(Z1*N1/60)$
|
||||
>
|
||||
> $\varepsilon$ is an approximation using the following formula :
|
||||
> $$
|
||||
> c_1=\frac{1+\frac{1}{Z1}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z1^2}+\frac{1}{Z1}}\right)\right)} \\
|
||||
> c_1=\frac{1+\frac{1}{Z2}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z2^2}+\frac{1}{Z2}}\right)\right)} \\
|
||||
> c_{12}=c_1+c_2\approx \epsilon
|
||||
> $$
|
||||
>
|
||||
|
||||
## Model
|
||||
|
||||
**Time :** time is sampled on the $T_{mesh}$, with $fs$ the number of points for each period, and $n_{periods}$ the number of periods calculated. The number of points is $fs\times n_{periods}$.
|
||||
|
||||
**Speed :**
|
||||
|
||||
## TO FIX
|
||||
|
||||
> [!CAUTION]
|
||||
> ...
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
296
config/Typora/draftsRecover/2026-3-19 README 114417.md
Normal file
296
config/Typora/draftsRecover/2026-3-19 README 114417.md
Normal file
|
|
@ -0,0 +1,296 @@
|
|||
---
|
||||
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
|
||||
- [ ] Images
|
||||
- [ ] 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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ------------------------------------------------ | --------- | --------------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : $k_x=k_{x_1}=k_{x_2}$ | 1e8 | N/m |
|
||||
| Flexion y : $k_y=k_{y_1}=k_{y_2}$ | 1e8 | N/m |
|
||||
| Torsion z : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | 1e5 | N/m |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related $\beta$ | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | 6 | m |
|
||||
| Air density $\rho_{air}$ | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | 10 | m/s |
|
||||
| Fluctuating external torque $T_{fluct}$ | 50 | N |
|
||||
| Fluctuating external frequency $f_{fluct}$ | 6 | Hz |
|
||||
| Performance efficiency $cp$ | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal between a low value ($=k_{mesh_{mean}}$ for one tooth in contact) and its double value as a high value. Length of both phase is given by $T_{high}=(\varepsilon-1)T_{mesh}$ and $T_{low}=(2-\varepsilon)T_{mesh}$. 10% of the start and of the end of the “high” phase is a linear slope from low value to high value.
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> $T_{mesh}=1/f_{mesh}=1/(Z1*N1/60)$
|
||||
>
|
||||
> $\varepsilon$ is an approximation using the following formula :
|
||||
> $$
|
||||
> c_1=\frac{1+\frac{1}{Z1}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z1^2}+\frac{1}{Z1}}\right)\right)} \\
|
||||
> c_1=\frac{1+\frac{1}{Z2}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z2^2}+\frac{1}{Z2}}\right)\right)} \\
|
||||
> c_{12}=c_1+c_2\approx \epsilon
|
||||
> $$
|
||||
>
|
||||
|
||||
## Model
|
||||
|
||||
**Time :** time is sampled on the $T_{mesh}$, with $fs$ the number of points for each period, and $n_{periods}$ the number of periods calculated. The number of points is $fs\times n_{periods}$.
|
||||
|
||||
**Speed :** speed is initialized at its “stable”
|
||||
|
||||
## TO FIX
|
||||
|
||||
> [!CAUTION]
|
||||
> ...
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
298
config/Typora/draftsRecover/2026-3-19 README 114438.md
Normal file
298
config/Typora/draftsRecover/2026-3-19 README 114438.md
Normal file
|
|
@ -0,0 +1,298 @@
|
|||
---
|
||||
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
|
||||
- [ ] Images
|
||||
- [ ] 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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ------------------------------------------------ | --------- | --------------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : $k_x=k_{x_1}=k_{x_2}$ | 1e8 | N/m |
|
||||
| Flexion y : $k_y=k_{y_1}=k_{y_2}$ | 1e8 | N/m |
|
||||
| Torsion z : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | 1e5 | N/m |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related $\beta$ | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | 6 | m |
|
||||
| Air density $\rho_{air}$ | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | 10 | m/s |
|
||||
| Fluctuating external torque $T_{fluct}$ | 50 | N |
|
||||
| Fluctuating external frequency $f_{fluct}$ | 6 | Hz |
|
||||
| Performance efficiency $cp$ | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal between a low value ($=k_{mesh_{mean}}$ for one tooth in contact) and its double value as a high value. Length of both phase is given by $T_{high}=(\varepsilon-1)T_{mesh}$ and $T_{low}=(2-\varepsilon)T_{mesh}$. 10% of the start and of the end of the “high” phase is a linear slope from low value to high value.
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> $T_{mesh}=1/f_{mesh}=1/(Z1*N1/60)$
|
||||
>
|
||||
> $\varepsilon$ is an approximation using the following formula :
|
||||
> $$
|
||||
> c_1=\frac{1+\frac{1}{Z1}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z1^2}+\frac{1}{Z1}}\right)\right)} \\
|
||||
> c_1=\frac{1+\frac{1}{Z2}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z2^2}+\frac{1}{Z2}}\right)\right)} \\
|
||||
> c_{12}=c_1+c_2\approx \epsilon
|
||||
> $$
|
||||
>
|
||||
|
||||
## Model
|
||||
|
||||
**Time :** time is sampled on the $T_{mesh}$, with $fs$ the number of points for each period, and $n_{periods}$ the number of periods calculated. The number of points is $fs\times n_{periods}$.
|
||||
|
||||
**Speed :** speed is initialized at its “stable” value.
|
||||
|
||||
> before any
|
||||
|
||||
## TO FIX
|
||||
|
||||
> [!CAUTION]
|
||||
> ...
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
298
config/Typora/draftsRecover/2026-3-19 README 114452.md
Normal file
298
config/Typora/draftsRecover/2026-3-19 README 114452.md
Normal file
|
|
@ -0,0 +1,298 @@
|
|||
---
|
||||
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
|
||||
- [ ] Images
|
||||
- [ ] 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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ------------------------------------------------ | --------- | --------------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : $k_x=k_{x_1}=k_{x_2}$ | 1e8 | N/m |
|
||||
| Flexion y : $k_y=k_{y_1}=k_{y_2}$ | 1e8 | N/m |
|
||||
| Torsion z : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | 1e5 | N/m |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related $\beta$ | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | 6 | m |
|
||||
| Air density $\rho_{air}$ | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | 10 | m/s |
|
||||
| Fluctuating external torque $T_{fluct}$ | 50 | N |
|
||||
| Fluctuating external frequency $f_{fluct}$ | 6 | Hz |
|
||||
| Performance efficiency $cp$ | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal between a low value ($=k_{mesh_{mean}}$ for one tooth in contact) and its double value as a high value. Length of both phase is given by $T_{high}=(\varepsilon-1)T_{mesh}$ and $T_{low}=(2-\varepsilon)T_{mesh}$. 10% of the start and of the end of the “high” phase is a linear slope from low value to high value.
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> $T_{mesh}=1/f_{mesh}=1/(Z1*N1/60)$
|
||||
>
|
||||
> $\varepsilon$ is an approximation using the following formula :
|
||||
> $$
|
||||
> c_1=\frac{1+\frac{1}{Z1}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z1^2}+\frac{1}{Z1}}\right)\right)} \\
|
||||
> c_1=\frac{1+\frac{1}{Z2}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z2^2}+\frac{1}{Z2}}\right)\right)} \\
|
||||
> c_{12}=c_1+c_2\approx \epsilon
|
||||
> $$
|
||||
>
|
||||
|
||||
## Model
|
||||
|
||||
**Time :** time is sampled on the $T_{mesh}$, with $fs$ the number of points for each period, and $n_{periods}$ the number of periods calculated. The number of points is $fs\times n_{periods}$.
|
||||
|
||||
**Speed :** speed is initialized at its “stable” value.
|
||||
|
||||
> if no auimplementation
|
||||
|
||||
## TO FIX
|
||||
|
||||
> [!CAUTION]
|
||||
> ...
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
298
config/Typora/draftsRecover/2026-3-19 README 114508.md
Normal file
298
config/Typora/draftsRecover/2026-3-19 README 114508.md
Normal file
|
|
@ -0,0 +1,298 @@
|
|||
---
|
||||
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
|
||||
- [ ] Images
|
||||
- [ ] 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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ------------------------------------------------ | --------- | --------------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : $k_x=k_{x_1}=k_{x_2}$ | 1e8 | N/m |
|
||||
| Flexion y : $k_y=k_{y_1}=k_{y_2}$ | 1e8 | N/m |
|
||||
| Torsion z : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | 1e5 | N/m |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related $\beta$ | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | 6 | m |
|
||||
| Air density $\rho_{air}$ | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | 10 | m/s |
|
||||
| Fluctuating external torque $T_{fluct}$ | 50 | N |
|
||||
| Fluctuating external frequency $f_{fluct}$ | 6 | Hz |
|
||||
| Performance efficiency $cp$ | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal between a low value ($=k_{mesh_{mean}}$ for one tooth in contact) and its double value as a high value. Length of both phase is given by $T_{high}=(\varepsilon-1)T_{mesh}$ and $T_{low}=(2-\varepsilon)T_{mesh}$. 10% of the start and of the end of the “high” phase is a linear slope from low value to high value.
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> $T_{mesh}=1/f_{mesh}=1/(Z1*N1/60)$
|
||||
>
|
||||
> $\varepsilon$ is an approximation using the following formula :
|
||||
> $$
|
||||
> c_1=\frac{1+\frac{1}{Z1}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z1^2}+\frac{1}{Z1}}\right)\right)} \\
|
||||
> c_1=\frac{1+\frac{1}{Z2}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z2^2}+\frac{1}{Z2}}\right)\right)} \\
|
||||
> c_{12}=c_1+c_2\approx \epsilon
|
||||
> $$
|
||||
>
|
||||
|
||||
## Model
|
||||
|
||||
**Time :** time is sampled on the $T_{mesh}$, with $fs$ the number of points for each period, and $n_{periods}$ the number of periods calculated. The number of points is $fs\times n_{periods}$.
|
||||
|
||||
**Speed :** speed is initialized at its “stable” value.
|
||||
|
||||
> if no automatic implementation, it has to be done “by hand” by starting
|
||||
|
||||
## TO FIX
|
||||
|
||||
> [!CAUTION]
|
||||
> ...
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
298
config/Typora/draftsRecover/2026-3-19 README 114521.md
Normal file
298
config/Typora/draftsRecover/2026-3-19 README 114521.md
Normal file
|
|
@ -0,0 +1,298 @@
|
|||
---
|
||||
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
|
||||
- [ ] Images
|
||||
- [ ] 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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ------------------------------------------------ | --------- | --------------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : $k_x=k_{x_1}=k_{x_2}$ | 1e8 | N/m |
|
||||
| Flexion y : $k_y=k_{y_1}=k_{y_2}$ | 1e8 | N/m |
|
||||
| Torsion z : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | 1e5 | N/m |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related $\beta$ | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | 6 | m |
|
||||
| Air density $\rho_{air}$ | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | 10 | m/s |
|
||||
| Fluctuating external torque $T_{fluct}$ | 50 | N |
|
||||
| Fluctuating external frequency $f_{fluct}$ | 6 | Hz |
|
||||
| Performance efficiency $cp$ | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal between a low value ($=k_{mesh_{mean}}$ for one tooth in contact) and its double value as a high value. Length of both phase is given by $T_{high}=(\varepsilon-1)T_{mesh}$ and $T_{low}=(2-\varepsilon)T_{mesh}$. 10% of the start and of the end of the “high” phase is a linear slope from low value to high value.
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> $T_{mesh}=1/f_{mesh}=1/(Z1*N1/60)$
|
||||
>
|
||||
> $\varepsilon$ is an approximation using the following formula :
|
||||
> $$
|
||||
> c_1=\frac{1+\frac{1}{Z1}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z1^2}+\frac{1}{Z1}}\right)\right)} \\
|
||||
> c_1=\frac{1+\frac{1}{Z2}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z2^2}+\frac{1}{Z2}}\right)\right)} \\
|
||||
> c_{12}=c_1+c_2\approx \epsilon
|
||||
> $$
|
||||
>
|
||||
|
||||
## Model
|
||||
|
||||
**Time :** time is sampled on the $T_{mesh}$, with $fs$ the number of points for each period, and $n_{periods}$ the number of periods calculated. The number of points is $fs\times n_{periods}$.
|
||||
|
||||
**Speed :** speed is initialized at its “stable” value.
|
||||
|
||||
> if no automatic implementation, it has to be done “by hand” by executing th
|
||||
|
||||
## TO FIX
|
||||
|
||||
> [!CAUTION]
|
||||
> ...
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
298
config/Typora/draftsRecover/2026-3-19 README 114536.md
Normal file
298
config/Typora/draftsRecover/2026-3-19 README 114536.md
Normal file
|
|
@ -0,0 +1,298 @@
|
|||
---
|
||||
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
|
||||
- [ ] Images
|
||||
- [ ] 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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ------------------------------------------------ | --------- | --------------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : $k_x=k_{x_1}=k_{x_2}$ | 1e8 | N/m |
|
||||
| Flexion y : $k_y=k_{y_1}=k_{y_2}$ | 1e8 | N/m |
|
||||
| Torsion z : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | 1e5 | N/m |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related $\beta$ | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | 6 | m |
|
||||
| Air density $\rho_{air}$ | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | 10 | m/s |
|
||||
| Fluctuating external torque $T_{fluct}$ | 50 | N |
|
||||
| Fluctuating external frequency $f_{fluct}$ | 6 | Hz |
|
||||
| Performance efficiency $cp$ | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal between a low value ($=k_{mesh_{mean}}$ for one tooth in contact) and its double value as a high value. Length of both phase is given by $T_{high}=(\varepsilon-1)T_{mesh}$ and $T_{low}=(2-\varepsilon)T_{mesh}$. 10% of the start and of the end of the “high” phase is a linear slope from low value to high value.
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> $T_{mesh}=1/f_{mesh}=1/(Z1*N1/60)$
|
||||
>
|
||||
> $\varepsilon$ is an approximation using the following formula :
|
||||
> $$
|
||||
> c_1=\frac{1+\frac{1}{Z1}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z1^2}+\frac{1}{Z1}}\right)\right)} \\
|
||||
> c_1=\frac{1+\frac{1}{Z2}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z2^2}+\frac{1}{Z2}}\right)\right)} \\
|
||||
> c_{12}=c_1+c_2\approx \epsilon
|
||||
> $$
|
||||
>
|
||||
|
||||
## Model
|
||||
|
||||
**Time :** time is sampled on the $T_{mesh}$, with $fs$ the number of points for each period, and $n_{periods}$ the number of periods calculated. The number of points is $fs\times n_{periods}$.
|
||||
|
||||
**Speed :** speed is initialized at its “stable” value.
|
||||
|
||||
> if no automatic implementation, it has to be done “by hand” by executing the program once, get the stabi
|
||||
|
||||
## TO FIX
|
||||
|
||||
> [!CAUTION]
|
||||
> ...
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
298
config/Typora/draftsRecover/2026-3-19 README 114645.md
Normal file
298
config/Typora/draftsRecover/2026-3-19 README 114645.md
Normal file
|
|
@ -0,0 +1,298 @@
|
|||
---
|
||||
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
|
||||
- [ ] Images
|
||||
- [ ] 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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ------------------------------------------------ | --------- | --------------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : $k_x=k_{x_1}=k_{x_2}$ | 1e8 | N/m |
|
||||
| Flexion y : $k_y=k_{y_1}=k_{y_2}$ | 1e8 | N/m |
|
||||
| Torsion z : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | 1e5 | N/m |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related $\beta$ | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | 6 | m |
|
||||
| Air density $\rho_{air}$ | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | 10 | m/s |
|
||||
| Fluctuating external torque $T_{fluct}$ | 50 | N |
|
||||
| Fluctuating external frequency $f_{fluct}$ | 6 | Hz |
|
||||
| Performance efficiency $cp$ | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal between a low value ($=k_{mesh_{mean}}$ for one tooth in contact) and its double value as a high value. Length of both phase is given by $T_{high}=(\varepsilon-1)T_{mesh}$ and $T_{low}=(2-\varepsilon)T_{mesh}$. 10% of the start and of the end of the “high” phase is a linear slope from low value to high value.
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> $T_{mesh}=1/f_{mesh}=1/(Z1*N1/60)$
|
||||
>
|
||||
> $\varepsilon$ is an approximation using the following formula :
|
||||
> $$
|
||||
> c_1=\frac{1+\frac{1}{Z1}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z1^2}+\frac{1}{Z1}}\right)\right)} \\
|
||||
> c_1=\frac{1+\frac{1}{Z2}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z2^2}+\frac{1}{Z2}}\right)\right)} \\
|
||||
> c_{12}=c_1+c_2\approx \epsilon
|
||||
> $$
|
||||
>
|
||||
|
||||
## Model
|
||||
|
||||
**Time :** time is sampled on the $T_{mesh}$, with $fs$ the number of points for each period, and $n_{periods}$ the number of periods calculated. The number of points is $fs\times n_{periods}$.
|
||||
|
||||
**Speed :** rotational speed is initialized at its “stable” value.
|
||||
|
||||
> if no automatic implementation, it has to be done “by hand” by executing the program once, get the speeds at the
|
||||
|
||||
## TO FIX
|
||||
|
||||
> [!CAUTION]
|
||||
> ...
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
298
config/Typora/draftsRecover/2026-3-19 README 114700.md
Normal file
298
config/Typora/draftsRecover/2026-3-19 README 114700.md
Normal file
|
|
@ -0,0 +1,298 @@
|
|||
---
|
||||
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
|
||||
- [ ] Images
|
||||
- [ ] 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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ------------------------------------------------ | --------- | --------------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : $k_x=k_{x_1}=k_{x_2}$ | 1e8 | N/m |
|
||||
| Flexion y : $k_y=k_{y_1}=k_{y_2}$ | 1e8 | N/m |
|
||||
| Torsion z : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | 1e5 | N/m |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related $\beta$ | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | 6 | m |
|
||||
| Air density $\rho_{air}$ | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | 10 | m/s |
|
||||
| Fluctuating external torque $T_{fluct}$ | 50 | N |
|
||||
| Fluctuating external frequency $f_{fluct}$ | 6 | Hz |
|
||||
| Performance efficiency $cp$ | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal between a low value ($=k_{mesh_{mean}}$ for one tooth in contact) and its double value as a high value. Length of both phase is given by $T_{high}=(\varepsilon-1)T_{mesh}$ and $T_{low}=(2-\varepsilon)T_{mesh}$. 10% of the start and of the end of the “high” phase is a linear slope from low value to high value.
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> $T_{mesh}=1/f_{mesh}=1/(Z1*N1/60)$
|
||||
>
|
||||
> $\varepsilon$ is an approximation using the following formula :
|
||||
> $$
|
||||
> c_1=\frac{1+\frac{1}{Z1}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z1^2}+\frac{1}{Z1}}\right)\right)} \\
|
||||
> c_1=\frac{1+\frac{1}{Z2}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z2^2}+\frac{1}{Z2}}\right)\right)} \\
|
||||
> c_{12}=c_1+c_2\approx \epsilon
|
||||
> $$
|
||||
>
|
||||
|
||||
## Model
|
||||
|
||||
**Time :** time is sampled on the $T_{mesh}$, with $fs$ the number of points for each period, and $n_{periods}$ the number of periods calculated. The number of points is $fs\times n_{periods}$.
|
||||
|
||||
**Speed :** rotational speed is initialized at its “stable” value.
|
||||
|
||||
> if no automatic implementation, it has to be done “by hand” by executing the program once, get the speeds after the transient zone, and put them by hand in “initia”
|
||||
|
||||
## TO FIX
|
||||
|
||||
> [!CAUTION]
|
||||
> ...
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
300
config/Typora/draftsRecover/2026-3-19 README 114726.md
Normal file
300
config/Typora/draftsRecover/2026-3-19 README 114726.md
Normal file
|
|
@ -0,0 +1,300 @@
|
|||
---
|
||||
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
|
||||
- [ ] Images
|
||||
- [ ] 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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ------------------------------------------------ | --------- | --------------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : $k_x=k_{x_1}=k_{x_2}$ | 1e8 | N/m |
|
||||
| Flexion y : $k_y=k_{y_1}=k_{y_2}$ | 1e8 | N/m |
|
||||
| Torsion z : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | 1e5 | N/m |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related $\beta$ | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | 6 | m |
|
||||
| Air density $\rho_{air}$ | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | 10 | m/s |
|
||||
| Fluctuating external torque $T_{fluct}$ | 50 | N |
|
||||
| Fluctuating external frequency $f_{fluct}$ | 6 | Hz |
|
||||
| Performance efficiency $cp$ | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal between a low value ($=k_{mesh_{mean}}$ for one tooth in contact) and its double value as a high value. Length of both phase is given by $T_{high}=(\varepsilon-1)T_{mesh}$ and $T_{low}=(2-\varepsilon)T_{mesh}$. 10% of the start and of the end of the “high” phase is a linear slope from low value to high value.
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> $T_{mesh}=1/f_{mesh}=1/(Z1*N1/60)$
|
||||
>
|
||||
> $\varepsilon$ is an approximation using the following formula :
|
||||
> $$
|
||||
> c_1=\frac{1+\frac{1}{Z1}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z1^2}+\frac{1}{Z1}}\right)\right)} \\
|
||||
> c_1=\frac{1+\frac{1}{Z2}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z2^2}+\frac{1}{Z2}}\right)\right)} \\
|
||||
> c_{12}=c_1+c_2\approx \epsilon
|
||||
> $$
|
||||
>
|
||||
|
||||
## Model
|
||||
|
||||
**Time :** time is sampled on the $T_{mesh}$, with $fs$ the number of points for each period, and $n_{periods}$ the number of periods calculated. The number of points is $fs\times n_{periods}$.
|
||||
|
||||
**Speed :** rotational speed is initialized at its “stable” value.
|
||||
|
||||
> if no automatic implementation, it has to be done “by hand” by executing the program once, get the speeds after the transient zone, and put them by hand in “initialization” source code (`func.m`)
|
||||
>
|
||||
>
|
||||
|
||||
## TO FIX
|
||||
|
||||
> [!CAUTION]
|
||||
> ...
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
300
config/Typora/draftsRecover/2026-3-19 README 114740.md
Normal file
300
config/Typora/draftsRecover/2026-3-19 README 114740.md
Normal file
|
|
@ -0,0 +1,300 @@
|
|||
---
|
||||
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
|
||||
- [ ] Images
|
||||
- [ ] 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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ------------------------------------------------ | --------- | --------------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : $k_x=k_{x_1}=k_{x_2}$ | 1e8 | N/m |
|
||||
| Flexion y : $k_y=k_{y_1}=k_{y_2}$ | 1e8 | N/m |
|
||||
| Torsion z : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | 1e5 | N/m |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related $\beta$ | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | 6 | m |
|
||||
| Air density $\rho_{air}$ | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | 10 | m/s |
|
||||
| Fluctuating external torque $T_{fluct}$ | 50 | N |
|
||||
| Fluctuating external frequency $f_{fluct}$ | 6 | Hz |
|
||||
| Performance efficiency $cp$ | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal between a low value ($=k_{mesh_{mean}}$ for one tooth in contact) and its double value as a high value. Length of both phase is given by $T_{high}=(\varepsilon-1)T_{mesh}$ and $T_{low}=(2-\varepsilon)T_{mesh}$. 10% of the start and of the end of the “high” phase is a linear slope from low value to high value.
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> $T_{mesh}=1/f_{mesh}=1/(Z1*N1/60)$
|
||||
>
|
||||
> $\varepsilon$ is an approximation using the following formula :
|
||||
> $$
|
||||
> c_1=\frac{1+\frac{1}{Z1}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z1^2}+\frac{1}{Z1}}\right)\right)} \\
|
||||
> c_1=\frac{1+\frac{1}{Z2}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z2^2}+\frac{1}{Z2}}\right)\right)} \\
|
||||
> c_{12}=c_1+c_2\approx \epsilon
|
||||
> $$
|
||||
>
|
||||
|
||||
## Model
|
||||
|
||||
**Time :** time is sampled on the $T_{mesh}$, with $fs$ the number of points for each period, and $n_{periods}$ the number of periods calculated. The number of points is $fs\times n_{periods}$.
|
||||
|
||||
**Speed :** rotational speed is initialized at its “stable” value.
|
||||
|
||||
> if no automatic implementation, it has to be done “by hand” by executing the program once, get the speeds after the transient zone, and put them by hand in “initialization” source code (`func.m`)
|
||||
|
||||
**Initialization :** everything
|
||||
|
||||
## TO FIX
|
||||
|
||||
> [!CAUTION]
|
||||
> ...
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
300
config/Typora/draftsRecover/2026-3-19 README 114800.md
Normal file
300
config/Typora/draftsRecover/2026-3-19 README 114800.md
Normal file
|
|
@ -0,0 +1,300 @@
|
|||
---
|
||||
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
|
||||
- [ ] Images
|
||||
- [ ] 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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ------------------------------------------------ | --------- | --------------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : $k_x=k_{x_1}=k_{x_2}$ | 1e8 | N/m |
|
||||
| Flexion y : $k_y=k_{y_1}=k_{y_2}$ | 1e8 | N/m |
|
||||
| Torsion z : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | 1e5 | N/m |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related $\beta$ | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | 6 | m |
|
||||
| Air density $\rho_{air}$ | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | 10 | m/s |
|
||||
| Fluctuating external torque $T_{fluct}$ | 50 | N |
|
||||
| Fluctuating external frequency $f_{fluct}$ | 6 | Hz |
|
||||
| Performance efficiency $cp$ | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal between a low value ($=k_{mesh_{mean}}$ for one tooth in contact) and its double value as a high value. Length of both phase is given by $T_{high}=(\varepsilon-1)T_{mesh}$ and $T_{low}=(2-\varepsilon)T_{mesh}$. 10% of the start and of the end of the “high” phase is a linear slope from low value to high value.
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> $T_{mesh}=1/f_{mesh}=1/(Z1*N1/60)$
|
||||
>
|
||||
> $\varepsilon$ is an approximation using the following formula :
|
||||
> $$
|
||||
> c_1=\frac{1+\frac{1}{Z1}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z1^2}+\frac{1}{Z1}}\right)\right)} \\
|
||||
> c_1=\frac{1+\frac{1}{Z2}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z2^2}+\frac{1}{Z2}}\right)\right)} \\
|
||||
> c_{12}=c_1+c_2\approx \epsilon
|
||||
> $$
|
||||
>
|
||||
|
||||
## Model
|
||||
|
||||
**Time :** time is sampled on the $T_{mesh}$, with $fs$ the number of points for each period, and $n_{periods}$ the number of periods calculated. The number of points is $fs\times n_{periods}$.
|
||||
|
||||
**Speed :** rotational speed is initialized at its “stable” value.
|
||||
|
||||
> if no automatic implementation, it has to be done “by hand” by executing the program once, get the speeds after the transient zone, and put them by hand in “initialization” source code (`func.m`)
|
||||
|
||||
**Initialization :** everything is set at 0 for initialization (except speed, )
|
||||
|
||||
## TO FIX
|
||||
|
||||
> [!CAUTION]
|
||||
> ...
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
302
config/Typora/draftsRecover/2026-3-19 README 114818.md
Normal file
302
config/Typora/draftsRecover/2026-3-19 README 114818.md
Normal file
|
|
@ -0,0 +1,302 @@
|
|||
---
|
||||
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
|
||||
- [ ] Images
|
||||
- [ ] 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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ------------------------------------------------ | --------- | --------------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : $k_x=k_{x_1}=k_{x_2}$ | 1e8 | N/m |
|
||||
| Flexion y : $k_y=k_{y_1}=k_{y_2}$ | 1e8 | N/m |
|
||||
| Torsion z : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | 1e5 | N/m |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related $\beta$ | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | 6 | m |
|
||||
| Air density $\rho_{air}$ | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | 10 | m/s |
|
||||
| Fluctuating external torque $T_{fluct}$ | 50 | N |
|
||||
| Fluctuating external frequency $f_{fluct}$ | 6 | Hz |
|
||||
| Performance efficiency $cp$ | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal between a low value ($=k_{mesh_{mean}}$ for one tooth in contact) and its double value as a high value. Length of both phase is given by $T_{high}=(\varepsilon-1)T_{mesh}$ and $T_{low}=(2-\varepsilon)T_{mesh}$. 10% of the start and of the end of the “high” phase is a linear slope from low value to high value.
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> $T_{mesh}=1/f_{mesh}=1/(Z1*N1/60)$
|
||||
>
|
||||
> $\varepsilon$ is an approximation using the following formula :
|
||||
> $$
|
||||
> c_1=\frac{1+\frac{1}{Z1}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z1^2}+\frac{1}{Z1}}\right)\right)} \\
|
||||
> c_1=\frac{1+\frac{1}{Z2}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z2^2}+\frac{1}{Z2}}\right)\right)} \\
|
||||
> c_{12}=c_1+c_2\approx \epsilon
|
||||
> $$
|
||||
>
|
||||
|
||||
## Model
|
||||
|
||||
**Time :** time is sampled on the $T_{mesh}$, with $fs$ the number of points for each period, and $n_{periods}$ the number of periods calculated. The number of points is $fs\times n_{periods}$.
|
||||
|
||||
**Speed :** rotational speed is initialized at its “stable” value.
|
||||
|
||||
> if no automatic implementation, it has to be done “by hand” by executing the program once, get the speeds after the transient zone, and put them by hand in “initialization” source code (`func.m`)
|
||||
|
||||
**Initialization :** everything is set at 0 for initialization (except speed)
|
||||
|
||||
**Model :** a Newmakr
|
||||
|
||||
## TO FIX
|
||||
|
||||
> [!CAUTION]
|
||||
> ...
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
302
config/Typora/draftsRecover/2026-3-19 README 114838.md
Normal file
302
config/Typora/draftsRecover/2026-3-19 README 114838.md
Normal file
|
|
@ -0,0 +1,302 @@
|
|||
---
|
||||
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
|
||||
- [ ] Images
|
||||
- [ ] 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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ------------------------------------------------ | --------- | --------------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : $k_x=k_{x_1}=k_{x_2}$ | 1e8 | N/m |
|
||||
| Flexion y : $k_y=k_{y_1}=k_{y_2}$ | 1e8 | N/m |
|
||||
| Torsion z : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | 1e5 | N/m |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related $\beta$ | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | 6 | m |
|
||||
| Air density $\rho_{air}$ | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | 10 | m/s |
|
||||
| Fluctuating external torque $T_{fluct}$ | 50 | N |
|
||||
| Fluctuating external frequency $f_{fluct}$ | 6 | Hz |
|
||||
| Performance efficiency $cp$ | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal between a low value ($=k_{mesh_{mean}}$ for one tooth in contact) and its double value as a high value. Length of both phase is given by $T_{high}=(\varepsilon-1)T_{mesh}$ and $T_{low}=(2-\varepsilon)T_{mesh}$. 10% of the start and of the end of the “high” phase is a linear slope from low value to high value.
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> $T_{mesh}=1/f_{mesh}=1/(Z1*N1/60)$
|
||||
>
|
||||
> $\varepsilon$ is an approximation using the following formula :
|
||||
> $$
|
||||
> c_1=\frac{1+\frac{1}{Z1}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z1^2}+\frac{1}{Z1}}\right)\right)} \\
|
||||
> c_1=\frac{1+\frac{1}{Z2}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z2^2}+\frac{1}{Z2}}\right)\right)} \\
|
||||
> c_{12}=c_1+c_2\approx \epsilon
|
||||
> $$
|
||||
>
|
||||
|
||||
## Model
|
||||
|
||||
**Time :** time is sampled on the $T_{mesh}$, with $fs$ the number of points for each period, and $n_{periods}$ the number of periods calculated. The number of points is $fs\times n_{periods}$.
|
||||
|
||||
**Speed :** rotational speed is initialized at its “stable” value.
|
||||
|
||||
> if no automatic implementation, it has to be done “by hand” by executing the program once, get the speeds after the transient zone, and put them by hand in “initialization” source code (`func.m`)
|
||||
|
||||
**Initialization :** everything is set at 0 for initialization (except speed)
|
||||
|
||||
**Model :** a Newmark scheme is used to compute the
|
||||
|
||||
## TO FIX
|
||||
|
||||
> [!CAUTION]
|
||||
> ...
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
303
config/Typora/draftsRecover/2026-3-19 README 114911.md
Normal file
303
config/Typora/draftsRecover/2026-3-19 README 114911.md
Normal file
|
|
@ -0,0 +1,303 @@
|
|||
---
|
||||
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
|
||||
- [ ] Images
|
||||
- [ ] 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
|
||||
- [x] Auto speed initial
|
||||
- [ ] 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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ------------------------------------------------ | --------- | --------------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : $k_x=k_{x_1}=k_{x_2}$ | 1e8 | N/m |
|
||||
| Flexion y : $k_y=k_{y_1}=k_{y_2}$ | 1e8 | N/m |
|
||||
| Torsion z : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | 1e5 | N/m |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related $\beta$ | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | 6 | m |
|
||||
| Air density $\rho_{air}$ | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | 10 | m/s |
|
||||
| Fluctuating external torque $T_{fluct}$ | 50 | N |
|
||||
| Fluctuating external frequency $f_{fluct}$ | 6 | Hz |
|
||||
| Performance efficiency $cp$ | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal between a low value ($=k_{mesh_{mean}}$ for one tooth in contact) and its double value as a high value. Length of both phase is given by $T_{high}=(\varepsilon-1)T_{mesh}$ and $T_{low}=(2-\varepsilon)T_{mesh}$. 10% of the start and of the end of the “high” phase is a linear slope from low value to high value.
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> $T_{mesh}=1/f_{mesh}=1/(Z1*N1/60)$
|
||||
>
|
||||
> $\varepsilon$ is an approximation using the following formula :
|
||||
> $$
|
||||
> c_1=\frac{1+\frac{1}{Z1}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z1^2}+\frac{1}{Z1}}\right)\right)} \\
|
||||
> c_1=\frac{1+\frac{1}{Z2}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z2^2}+\frac{1}{Z2}}\right)\right)} \\
|
||||
> c_{12}=c_1+c_2\approx \epsilon
|
||||
> $$
|
||||
>
|
||||
|
||||
## Model
|
||||
|
||||
**Time :** time is sampled on the $T_{mesh}$, with $fs$ the number of points for each period, and $n_{periods}$ the number of periods calculated. The number of points is $fs\times n_{periods}$.
|
||||
|
||||
**Speed :** rotational speed is initialized at its “stable” value.
|
||||
|
||||
> if no automatic implementation, it has to be done “by hand” by executing the program once, get the speeds after the transient zone, and put them by hand in “initialization” source code (`func.m`)
|
||||
|
||||
**Initialization :** everything is set at 0 for initialization (except speed)
|
||||
|
||||
**Model :** a basic Newmark scheme is used to compute the model over time
|
||||
|
||||
## TO FIX
|
||||
|
||||
> [!CAUTION]
|
||||
> ...
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
303
config/Typora/draftsRecover/2026-3-19 README 114915.md
Normal file
303
config/Typora/draftsRecover/2026-3-19 README 114915.md
Normal file
|
|
@ -0,0 +1,303 @@
|
|||
---
|
||||
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
|
||||
- [ ] Images
|
||||
- [ ] 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
|
||||
- [x] Auto speed initialization
|
||||
- [ ] 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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ------------------------------------------------ | --------- | --------------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : $k_x=k_{x_1}=k_{x_2}$ | 1e8 | N/m |
|
||||
| Flexion y : $k_y=k_{y_1}=k_{y_2}$ | 1e8 | N/m |
|
||||
| Torsion z : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | 1e5 | N/m |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related $\beta$ | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | 6 | m |
|
||||
| Air density $\rho_{air}$ | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | 10 | m/s |
|
||||
| Fluctuating external torque $T_{fluct}$ | 50 | N |
|
||||
| Fluctuating external frequency $f_{fluct}$ | 6 | Hz |
|
||||
| Performance efficiency $cp$ | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal between a low value ($=k_{mesh_{mean}}$ for one tooth in contact) and its double value as a high value. Length of both phase is given by $T_{high}=(\varepsilon-1)T_{mesh}$ and $T_{low}=(2-\varepsilon)T_{mesh}$. 10% of the start and of the end of the “high” phase is a linear slope from low value to high value.
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> $T_{mesh}=1/f_{mesh}=1/(Z1*N1/60)$
|
||||
>
|
||||
> $\varepsilon$ is an approximation using the following formula :
|
||||
> $$
|
||||
> c_1=\frac{1+\frac{1}{Z1}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z1^2}+\frac{1}{Z1}}\right)\right)} \\
|
||||
> c_1=\frac{1+\frac{1}{Z2}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z2^2}+\frac{1}{Z2}}\right)\right)} \\
|
||||
> c_{12}=c_1+c_2\approx \epsilon
|
||||
> $$
|
||||
>
|
||||
|
||||
## Model
|
||||
|
||||
**Time :** time is sampled on the $T_{mesh}$, with $fs$ the number of points for each period, and $n_{periods}$ the number of periods calculated. The number of points is $fs\times n_{periods}$.
|
||||
|
||||
**Speed :** rotational speed is initialized at its “stable” value.
|
||||
|
||||
> if no automatic implementation, it has to be done “by hand” by executing the program once, get the speeds after the transient zone, and put them by hand in “initialization” source code (`func.m`)
|
||||
|
||||
**Initialization :** everything is set at 0 for initialization (except speed)
|
||||
|
||||
**Model :** a basic Newmark scheme is used to compute the model over time
|
||||
|
||||
## TO FIX
|
||||
|
||||
> [!CAUTION]
|
||||
> ...
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
303
config/Typora/draftsRecover/2026-3-19 README 114916.md
Normal file
303
config/Typora/draftsRecover/2026-3-19 README 114916.md
Normal file
|
|
@ -0,0 +1,303 @@
|
|||
---
|
||||
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
|
||||
- [ ] Images
|
||||
- [ ] 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
|
||||
- [ ] Auto speed initialization
|
||||
- [ ] 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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ------------------------------------------------ | --------- | --------------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : $k_x=k_{x_1}=k_{x_2}$ | 1e8 | N/m |
|
||||
| Flexion y : $k_y=k_{y_1}=k_{y_2}$ | 1e8 | N/m |
|
||||
| Torsion z : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | 1e5 | N/m |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related $\beta$ | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | 6 | m |
|
||||
| Air density $\rho_{air}$ | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | 10 | m/s |
|
||||
| Fluctuating external torque $T_{fluct}$ | 50 | N |
|
||||
| Fluctuating external frequency $f_{fluct}$ | 6 | Hz |
|
||||
| Performance efficiency $cp$ | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal between a low value ($=k_{mesh_{mean}}$ for one tooth in contact) and its double value as a high value. Length of both phase is given by $T_{high}=(\varepsilon-1)T_{mesh}$ and $T_{low}=(2-\varepsilon)T_{mesh}$. 10% of the start and of the end of the “high” phase is a linear slope from low value to high value.
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> $T_{mesh}=1/f_{mesh}=1/(Z1*N1/60)$
|
||||
>
|
||||
> $\varepsilon$ is an approximation using the following formula :
|
||||
> $$
|
||||
> c_1=\frac{1+\frac{1}{Z1}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z1^2}+\frac{1}{Z1}}\right)\right)} \\
|
||||
> c_1=\frac{1+\frac{1}{Z2}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z2^2}+\frac{1}{Z2}}\right)\right)} \\
|
||||
> c_{12}=c_1+c_2\approx \epsilon
|
||||
> $$
|
||||
>
|
||||
|
||||
## Model
|
||||
|
||||
**Time :** time is sampled on the $T_{mesh}$, with $fs$ the number of points for each period, and $n_{periods}$ the number of periods calculated. The number of points is $fs\times n_{periods}$.
|
||||
|
||||
**Speed :** rotational speed is initialized at its “stable” value.
|
||||
|
||||
> if no automatic implementation, it has to be done “by hand” by executing the program once, get the speeds after the transient zone, and put them by hand in “initialization” source code (`func.m`)
|
||||
|
||||
**Initialization :** everything is set at 0 for initialization (except speed)
|
||||
|
||||
**Model :** a basic Newmark scheme is used to compute the model over time
|
||||
|
||||
## TO FIX
|
||||
|
||||
> [!CAUTION]
|
||||
> ...
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
303
config/Typora/draftsRecover/2026-3-19 README 114917.md
Normal file
303
config/Typora/draftsRecover/2026-3-19 README 114917.md
Normal file
|
|
@ -0,0 +1,303 @@
|
|||
---
|
||||
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
|
||||
- [ ] Images
|
||||
- [ ] 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
|
||||
- [ ] Auto speed initialization
|
||||
- [ ] 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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ------------------------------------------------ | --------- | --------------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : $k_x=k_{x_1}=k_{x_2}$ | 1e8 | N/m |
|
||||
| Flexion y : $k_y=k_{y_1}=k_{y_2}$ | 1e8 | N/m |
|
||||
| Torsion z : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | 1e5 | N/m |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related $\beta$ | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | 6 | m |
|
||||
| Air density $\rho_{air}$ | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | 10 | m/s |
|
||||
| Fluctuating external torque $T_{fluct}$ | 50 | N |
|
||||
| Fluctuating external frequency $f_{fluct}$ | 6 | Hz |
|
||||
| Performance efficiency $cp$ | 16/27 | |
|
||||
|
||||
### 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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal between a low value ($=k_{mesh_{mean}}$ for one tooth in contact) and its double value as a high value. Length of both phase is given by $T_{high}=(\varepsilon-1)T_{mesh}$ and $T_{low}=(2-\varepsilon)T_{mesh}$. 10% of the start and of the end of the “high” phase is a linear slope from low value to high value.
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> $T_{mesh}=1/f_{mesh}=1/(Z1*N1/60)$
|
||||
>
|
||||
> $\varepsilon$ is an approximation using the following formula :
|
||||
> $$
|
||||
> c_1=\frac{1+\frac{1}{Z1}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z1^2}+\frac{1}{Z1}}\right)\right)} \\
|
||||
> c_1=\frac{1+\frac{1}{Z2}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z2^2}+\frac{1}{Z2}}\right)\right)} \\
|
||||
> c_{12}=c_1+c_2\approx \epsilon
|
||||
> $$
|
||||
>
|
||||
|
||||
## Model
|
||||
|
||||
**Time :** time is sampled on the $T_{mesh}$, with $fs$ the number of points for each period, and $n_{periods}$ the number of periods calculated. The number of points is $fs\times n_{periods}$.
|
||||
|
||||
**Speed :** rotational speed is initialized at its “stable” value.
|
||||
|
||||
> if no automatic implementation, it has to be done “by hand” by executing the program once, get the speeds after the transient zone, and put them by hand in “initialization” source code (`func.m`)
|
||||
|
||||
**Initialization :** everything is set at 0 for initialization (except speed)
|
||||
|
||||
**Model :** a basic Newmark scheme is used to compute the model over time
|
||||
|
||||
## TO FIX
|
||||
|
||||
> [!CAUTION]
|
||||
> ...
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
303
config/Typora/draftsRecover/2026-3-19 README 115220.md
Normal file
303
config/Typora/draftsRecover/2026-3-19 README 115220.md
Normal file
|
|
@ -0,0 +1,303 @@
|
|||
---
|
||||
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
|
||||
- [ ] Images
|
||||
- [ ] 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
|
||||
- [ ] Auto speed initialization
|
||||
- [ ] 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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ------------------------------------------------ | --------- | --------------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : $k_x=k_{x_1}=k_{x_2}$ | 1e8 | N/m |
|
||||
| Flexion y : $k_y=k_{y_1}=k_{y_2}$ | 1e8 | N/m |
|
||||
| Torsion z : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | 1e5 | N/m |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related $\beta$ | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | 6 | m |
|
||||
| Air density $\rho_{air}$ | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | 10 | m/s |
|
||||
| Fluctuating external torque $T_{fluct}$ | 50 | N |
|
||||
| Fluctuating external frequency $f_{fluct}$ | 6 | Hz |
|
||||
| Performance efficiency $cp$ | 16/27 | |
|
||||
|
||||
### 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**
|
||||
$$
|
||||
\frac{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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal between a low value ($=k_{mesh_{mean}}$ for one tooth in contact) and its double value as a high value. Length of both phase is given by $T_{high}=(\varepsilon-1)T_{mesh}$ and $T_{low}=(2-\varepsilon)T_{mesh}$. 10% of the start and of the end of the “high” phase is a linear slope from low value to high value.
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> $T_{mesh}=1/f_{mesh}=1/(Z1*N1/60)$
|
||||
>
|
||||
> $\varepsilon$ is an approximation using the following formula :
|
||||
> $$
|
||||
> c_1=\frac{1+\frac{1}{Z1}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z1^2}+\frac{1}{Z1}}\right)\right)} \\
|
||||
> c_1=\frac{1+\frac{1}{Z2}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z2^2}+\frac{1}{Z2}}\right)\right)} \\
|
||||
> c_{12}=c_1+c_2\approx \epsilon
|
||||
> $$
|
||||
>
|
||||
|
||||
## Model
|
||||
|
||||
**Time :** time is sampled on the $T_{mesh}$, with $fs$ the number of points for each period, and $n_{periods}$ the number of periods calculated. The number of points is $fs\times n_{periods}$.
|
||||
|
||||
**Speed :** rotational speed is initialized at its “stable” value.
|
||||
|
||||
> if no automatic implementation, it has to be done “by hand” by executing the program once, get the speeds after the transient zone, and put them by hand in “initialization” source code (`func.m`)
|
||||
|
||||
**Initialization :** everything is set at 0 for initialization (except speed)
|
||||
|
||||
**Model :** a basic Newmark scheme is used to compute the model over time
|
||||
|
||||
## TO FIX
|
||||
|
||||
> [!CAUTION]
|
||||
> ...
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
303
config/Typora/draftsRecover/2026-3-19 README 115226.md
Normal file
303
config/Typora/draftsRecover/2026-3-19 README 115226.md
Normal file
|
|
@ -0,0 +1,303 @@
|
|||
---
|
||||
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
|
||||
- [ ] Images
|
||||
- [ ] 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
|
||||
- [ ] Auto speed initialization
|
||||
- [ ] 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
|
||||
|
||||
| Newmark parameters | Value | **Unit** |
|
||||
| ------------------------------------------------ | --------- | --------------- |
|
||||
| $\gamma$ | 0.7 | |
|
||||
| $\beta$ | 0.3 | |
|
||||
| **Gears** | **Value** | |
|
||||
| Pinon 1 tooth number $Z1$ | 72 | |
|
||||
| Pinion 2 tooth number $Z2$ | 18 | |
|
||||
| Pinion modulus $m_0$ | 0.016 | m |
|
||||
| Pinion width $b$ | 0.1 | m |
|
||||
| Internal diameter pinion 1 $d_{i1}$ | 0.5 | m |
|
||||
| Internal diameter pinion 2 $d_{i_2}$ | 0.3 | m |
|
||||
| Input speed $N_1$ | 17 | m/s |
|
||||
| Contact angle $\alpha$ | 20 | degree |
|
||||
| Steel density $\rho_{steel}$ | 7860 | kg/m3 |
|
||||
| **Masses** | **Value** | **Unit** |
|
||||
| Input mass $m_{in}$ | 54000 | kg |
|
||||
| Output mass $m_{out}$ | 10 | kg |
|
||||
| **Stiffness** | | |
|
||||
| Flexion x : $k_x=k_{x_1}=k_{x_2}$ | 1e8 | N/m |
|
||||
| Flexion y : $k_y=k_{y_1}=k_{y_2}$ | 1e8 | N/m |
|
||||
| Torsion z : $k_\theta=k_{\theta_1}=k_{\theta_2}$ | 1e5 | N/m |
|
||||
| Mean mesh stiffness $k_{mesh_{mean}}$ | 1e8 | N/rad |
|
||||
| **Damping** | **Value** | **Unit** |
|
||||
| Mass related $\eta$ | 5e-2 | N/(m/s)/(kg) |
|
||||
| Stiffness related $\beta$ | 1e-6 | N/(m/s)/(N/rad) |
|
||||
| **Wind excitation** | **Value** | **Unit** |
|
||||
| Blade radius $r_{blade}$ | 6 | m |
|
||||
| Air density $\rho_{air}$ | 1.225 | kg/m3 |
|
||||
| Wind speed (mean) $v_{wind_{mean}}$ | 10 | m/s |
|
||||
| Fluctuating external torque $T_{fluct}$ | 50 | N |
|
||||
| Fluctuating external frequency $f_{fluct}$ | 6 | Hz |
|
||||
| Performance efficiency $cp$ | 16/27 | |
|
||||
|
||||
### 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**
|
||||
$$
|
||||
\frac{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}
|
||||
$$
|
||||
**Mesh stiffness model**
|
||||
|
||||
The mesh stiffness is modelized by a trapezoïdal signal between a low value ($=k_{mesh_{mean}}$ for one tooth in contact) and its double value as a high value. Length of both phase is given by $T_{high}=(\varepsilon-1)T_{mesh}$ and $T_{low}=(2-\varepsilon)T_{mesh}$. 10% of the start and of the end of the “high” phase is a linear slope from low value to high value.
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> $T_{mesh}=1/f_{mesh}=1/(Z1*N1/60)$
|
||||
>
|
||||
> $\varepsilon$ is an approximation using the following formula :
|
||||
> $$
|
||||
> c_1=\frac{1+\frac{1}{Z1}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z1^2}+\frac{1}{Z1}}\right)\right)} \\
|
||||
> c_1=\frac{1+\frac{1}{Z2}}{\left(\pi cos(\alpha)\left(\frac{sin(\alpha)}{2}+\sqrt{\frac{sin(\alpha)^2}{4}+\frac{1}{Z2^2}+\frac{1}{Z2}}\right)\right)} \\
|
||||
> c_{12}=c_1+c_2\approx \epsilon
|
||||
> $$
|
||||
>
|
||||
|
||||
## Model
|
||||
|
||||
**Time :** time is sampled on the $T_{mesh}$, with $fs$ the number of points for each period, and $n_{periods}$ the number of periods calculated. The number of points is $fs\times n_{periods}$.
|
||||
|
||||
**Speed :** rotational speed is initialized at its “stable” value.
|
||||
|
||||
> if no automatic implementation, it has to be done “by hand” by executing the program once, get the speeds after the transient zone, and put them by hand in “initialization” source code (`func.m`)
|
||||
|
||||
**Initialization :** everything is set at 0 for initialization (except speed)
|
||||
|
||||
**Model :** a basic Newmark scheme is used to compute the model over time
|
||||
|
||||
## TO FIX
|
||||
|
||||
> [!CAUTION]
|
||||
> ...
|
||||
|
||||
## 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
```
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue