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