First draft of the README.md
This commit is contained in:
parent
ecf222d337
commit
e5b9f2264d
196
README.md
196
README.md
@ -0,0 +1,196 @@
|
|||||||
|
# Nano Active Stabilization of samples for tomography experiments: A mechatronic design approach
|
||||||
|
|
||||||
|
**Author:** Thomas Dehaeze
|
||||||
|
**University:** Liège Université
|
||||||
|
**Date:** April 2025
|
||||||
|
|
||||||
|
<!-- [](https://doi.org/10.5281/zenodo.XXXXXXX) -->
|
||||||
|
|
||||||
|
## Abstract
|
||||||
|
|
||||||
|
The fourth generation synchrotron light sources has yielded X-ray beams with a 100-fold increase in brightness and sub-micron focusing capabilities, offering unprecedented scientific opportunities while requiring end-stations with enhanced sample positioning accuracy.
|
||||||
|
At the European Synchrotron (ESRF), the ID31 beamline features an end-station for positioning samples along complex trajectories.
|
||||||
|
However, its micrometer-range accuracy, limited by thermal drifts and mechanical vibrations, prevents maintaining the point of interest on the focused beam during experiments.
|
||||||
|
|
||||||
|
To address this limitation, this thesis aims to develop a system for actively stabilizing the sample's position down to the nanometer range while the end-station moves the sample through the beam.
|
||||||
|
The developed system integrates an external metrology for sample position measurement, an active stabilization stage mounted between the end-station and the sample, and a dedicated control architecture.
|
||||||
|
The design of this system presented key challenges, first of which involved the design process.
|
||||||
|
To effectively predict how this complex mechatronic system would perform, a series of dynamical models with increasing accuracy were employed.
|
||||||
|
These models allowed simulation of the system's behavior at different design stages, identifying potential weaknesses early on before physical construction, ultimately leading to a design that fully satisfies the requirements.
|
||||||
|
The second challenge stems from control requirements, specifically the need to stabilize samples with masses from 1 to 50 kg, which required the development of specialized robust control architectures.
|
||||||
|
Finally, the developed Nano Active Stabilization System underwent thorough experimental validation on the ID31 beamline, validating both its performance and the underlying concept.
|
||||||
|
|
||||||
|
## About This Repository & Reproducible Research
|
||||||
|
|
||||||
|
The foundation of this PhD thesis is built upon the principles of **reproducible research**.
|
||||||
|
Reproducible research is the practice of ensuring that the results of a study can be independently verified by others using the original data, code, and documentation.
|
||||||
|
|
||||||
|
This approach was adopted to increase transparency and trust in the presented research findings.
|
||||||
|
Furthermore, it is anticipated that the methods and data shared will facilitate knowledge transfer and reuse within the scientific community, thereby reducing research redundancy and increasing overall efficiency.
|
||||||
|
It is hoped that some aspects of this work may be reused by the synchrotron community.
|
||||||
|
|
||||||
|
The fundamental objective has been to ensure that anyone should be capable of reproducing precisely the same results and figures as presented in this manuscript.
|
||||||
|
To achieve this goal of reproducibility, comprehensive sharing of all elements has been implemented.
|
||||||
|
This includes the mathematical models developed, raw experimental data collected, and scripts used to generate the figures.
|
||||||
|
|
||||||
|
For those wishing to engage with the reproducible aspects of this work, all data and code are freely accessible in this Git repository.
|
||||||
|
The organization of the code mirrors that of the manuscript, with corresponding chapters and sections.
|
||||||
|
All materials have been made available under the MIT License, permitting free reuse.
|
||||||
|
|
||||||
|
This repository includes:
|
||||||
|
* Raw and/or processed data used in the analyses.
|
||||||
|
* MATLAB scripts and functions for data processing, simulations, and figure generation.
|
||||||
|
* Simulink/Simscape models developed or used during the research.
|
||||||
|
* A digital copy of the final PhD thesis document.
|
||||||
|
|
||||||
|
## Repository Structure
|
||||||
|
|
||||||
|
The repository is organized as follows:
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
.
|
||||||
|
├── A1-nass-uniaxial-model \# Every Section in the PhD thesis has its own direction
|
||||||
|
├── A2-nass-rotating-3dof-model
|
||||||
|
├── A3-micro-station-modal-analysis
|
||||||
|
├── A4-simscape-micro-station \# The directory for each section is structure as follows:
|
||||||
|
│ ├── mat \# - All raw data
|
||||||
|
│ ├── src \# - All Matlab functions, automatically added to the path
|
||||||
|
│ ├── STEPS \# - .step files used for the multi-body (Simscape) model
|
||||||
|
│ ├── subsystems \# - subsystems used in the multi-body (Simscape) model
|
||||||
|
│ ├── ustation_1_kinematics.m \# - The Matlab scripts corresponding to the different sections
|
||||||
|
│ ├── ustation_2_modeling.m
|
||||||
|
│ ├── ustation_3_disturbances.m
|
||||||
|
│ ├── ustation_4_experiments.m
|
||||||
|
│ └── ustation_simscape.slx \# - The Simscape model used in this particular section
|
||||||
|
├── A5-simscape-nano-hexapod
|
||||||
|
├── A6-simscape-nass
|
||||||
|
├── B1-nass-geometry
|
||||||
|
├── B2-nass-fem
|
||||||
|
├── B3-control
|
||||||
|
├── B4-nass-instrumentation
|
||||||
|
├── C1-test-bench-apa
|
||||||
|
├── C2-test-bench-flexible-joints
|
||||||
|
├── C3-test-bench-struts
|
||||||
|
├── C4-test-bench-nano-hexapod
|
||||||
|
├── C5-test-bench-id31
|
||||||
|
├── init.m \# Optional: Some Matlab configuration to have same figure display
|
||||||
|
├── LICENSE \# MIT License is used for all the code in this repository
|
||||||
|
└── README.md \# The present file
|
||||||
|
|
||||||
|
````
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
To run the code and reproduce the results in this repository, you will need the following software environment:
|
||||||
|
|
||||||
|
**Operating System:**
|
||||||
|
* Tested on:
|
||||||
|
* Microsoft Windows
|
||||||
|
* Linux
|
||||||
|
* Should be compatible with other versions of Windows, macOS, and Linux supporting MATLAB R2022a.
|
||||||
|
|
||||||
|
**Software:**
|
||||||
|
* **MATLAB Version:** 9.12 (R2022a) Update 8 or later compatible version.
|
||||||
|
* **Required MATLAB Toolboxes:**
|
||||||
|
* Simulink: Version 10.5 (R2022a)
|
||||||
|
* Control System Toolbox: Version 10.11.1 (R2022a)
|
||||||
|
* Curve Fitting Toolbox: Version 3.7 (R2022a)
|
||||||
|
* Optimization Toolbox: Version 9.3 (R2022a)
|
||||||
|
* Robust Control Toolbox: Version 6.11.1 (R2022a)
|
||||||
|
* Signal Processing Toolbox: Version 9.0 (R2022a)
|
||||||
|
* Simscape: Version 5.3 (R2022a)
|
||||||
|
* Simscape Multibody: Version 7.5 (R2022a)
|
||||||
|
* Simulink Control Design: Version 6.1 (R2022a)
|
||||||
|
* Symbolic Math Toolbox: Version 9.1 (R2022a)
|
||||||
|
* System Identification Toolbox: Version 9.16 (R2022a)
|
||||||
|
|
||||||
|
|
||||||
|
## Instructions for Reproduction
|
||||||
|
|
||||||
|
1. **Clone the repository:**
|
||||||
|
```bash
|
||||||
|
git clone [https://docs.github.com/en/repositories/creating-and-managing-repositories/about-repositories](https://docs.github.com/en/repositories/creating-and-managing-repositories/about-repositories)
|
||||||
|
cd [repository folder name]
|
||||||
|
```
|
||||||
|
2. **Set up MATLAB Environment:**
|
||||||
|
* Ensure MATLAB R2022a and all required toolboxes listed above are installed.
|
||||||
|
* Open MATLAB.
|
||||||
|
* Navigate to the root directory of the cloned repository within MATLAB.
|
||||||
|
* Add the repository's folders to the MATLAB path. You can often do this by running the following command in the MATLAB console:
|
||||||
|
```matlab
|
||||||
|
addpath(genpath(pwd));
|
||||||
|
```
|
||||||
|
*(Note: Check if you need a more specific path setup script)*
|
||||||
|
3. **Run the Code:**
|
||||||
|
* [Provide specific instructions here. For example:]
|
||||||
|
* "To reproduce all figures and results, run the main script: `main_script.m`"
|
||||||
|
* "Alternatively, run scripts in the following order:"
|
||||||
|
* `scripts/processing/preprocess_data.m`
|
||||||
|
* `scripts/simulations/run_model_simulation.m`
|
||||||
|
* `scripts/analysis/analyze_results.m`
|
||||||
|
* `scripts/plotting/generate_all_figures.m`
|
||||||
|
* Specify where the outputs (figures, tables, data files) will be saved (e.g., in the `results/` directory).
|
||||||
|
* Mention expected run times if some scripts are computationally intensive.
|
||||||
|
|
||||||
|
## Citation
|
||||||
|
|
||||||
|
If you use the code, data, or findings from this repository or the associated thesis, please cite:
|
||||||
|
|
||||||
|
**Thesis:**
|
||||||
|
* [Your Name] ([Year]). *[Your Thesis Title Here]*. PhD Thesis, [Your University Name]. [Link to university library record or official source if available]
|
||||||
|
|
||||||
|
**Software/Data Repository (Zenodo):**
|
||||||
|
* [Your Name] ([Year]). *[Repository Title, e.g., Code and Data for PhD Thesis: Your Thesis Title Here]*. Zenodo. [https://doi.org/10.5281/zenodo.XXXXXXX](https://doi.org/10.5281/zenodo.XXXXXXX) *(<- Replace with your DOI)*
|
||||||
|
|
||||||
|
```bibtex
|
||||||
|
@phdthesis{YourLastNameYEARphd,
|
||||||
|
author = {[Your Name]},
|
||||||
|
title = {[Your Thesis Title Here]},
|
||||||
|
school = {[Your University Name]},
|
||||||
|
year = {[Year]},
|
||||||
|
address = {[City, Country]},
|
||||||
|
url = {[Link to thesis, optional]}
|
||||||
|
}
|
||||||
|
|
||||||
|
@software{[YourLastNameYEARzenodo],
|
||||||
|
author = {[Your Name]},
|
||||||
|
title = {[Repository Title, e.g., Code and Data for PhD Thesis: Your Thesis Title Here]},
|
||||||
|
month = {[Month of Zenodo publication]},
|
||||||
|
year = {[Year of Zenodo publication]},
|
||||||
|
publisher = {Zenodo},
|
||||||
|
version = {[Version/tag used for Zenodo archive, e.g., v1.0.0]},
|
||||||
|
doi = {10.5281/zenodo.XXXXXXX},
|
||||||
|
url = {[https://doi.org/10.5281/zenodo.XXXXXXX](https://doi.org/10.5281/zenodo.XXXXXXX)}
|
||||||
|
}
|
||||||
|
````
|
||||||
|
|
||||||
|
*(Note: Fill in the BibTeX details and update the DOI)*
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
The code and associated files in this repository are licensed under the MIT License. See the [LICENSE](LICENSE) file for details.
|
||||||
|
|
||||||
|
Copyright (c) 2025 Thomas Dehaeze
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
|
|
||||||
|
## Contact
|
||||||
|
|
||||||
|
For questions about the code, data, or thesis, please contact [Your Name] at [Your Email Address].
|
Loading…
x
Reference in New Issue
Block a user