This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
+++
|
||||
title = "Zettels"
|
||||
author = ["Thomas Dehaeze"]
|
||||
type = "zettels"
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Here is the list of subjects I took note about.
|
||||
@@ -0,0 +1,27 @@
|
||||
+++
|
||||
title = "Acquisition Systems"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
category = "equipment"
|
||||
+++
|
||||
|
||||
Tags
|
||||
: [Analog to Digital Converters]({{< relref "analog_to_digital_converters.md" >}}), [Simulink Real Time Target Machines]({{< relref "simulink_real_time_target_machines.md" >}})
|
||||
|
||||
|
||||
## Manufacturers {#manufacturers}
|
||||
|
||||
<https://dewesoft.com/daq/list-of-data-acquisition-companies>
|
||||
|
||||
| Manufacturers | Country |
|
||||
|----------------------------------------------------------------------------------------------------|----------|
|
||||
| [Dewesoft](https://dewesoft.com/) | Slovenia |
|
||||
| [Oros](https://www.oros.com/) | France |
|
||||
| [National Instruments](https://www.ni.com/fr-fr/shop/pc-based-measurement-and-control-system.html) | USA |
|
||||
| [Gantner](https://www.gantner-instruments.com/products/daq-systems/) | Austria |
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,20 @@
|
||||
+++
|
||||
title = "Active Damping"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
There are two main control architecture to actively damp structures:
|
||||
|
||||
- [Integral Force Feedback]({{< relref "integral_force_feedback.md" >}})
|
||||
- [Direct Velocity Feedback]({{< relref "direct_velocity_feedback.md" >}})
|
||||
|
||||
The idea is to apply a force proportional to the velocity (either relative or inertial) of the structure.
|
||||
|
||||
These are usually applied in a collocated way, meaning that the actuator and sensors are collocated (fixed to the same DoF), in order to have guaranteed stability.
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
@@ -0,0 +1,38 @@
|
||||
+++
|
||||
title = "Active Isolation Platforms"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
category = "equipment"
|
||||
+++
|
||||
|
||||
Tags
|
||||
: [Vibration Isolation]({{< relref "vibration_isolation.md" >}})
|
||||
|
||||
|
||||
## Manufacturers {#manufacturers}
|
||||
|
||||
| Manufacturers | Country |
|
||||
|-----------------------------------------------------------------------------------------------|-------------|
|
||||
| [TMC](https://www.techmfg.com/) | USA |
|
||||
| [Newport](https://www.newport.com/c/optical-tables-%26-isolation-systems) | USA |
|
||||
| [Thorlabs](https://www.thorlabs.com/navigation.cfm?guide_ID=42) | USA |
|
||||
| [IDE](https://www.ideworld.com/en/active_vibration_isolation.html) | Germany |
|
||||
| [Harvard Apparatus](https://www.warneronline.com/labmate-vibraplane-workstations-9100-series) | USA |
|
||||
| [Herzan](https://www.herzan.com/products/active-vibration-control/avi-series.html) | USA |
|
||||
| [Standa](http://www.standa.lt/products/catalog/optical_tables?item=335) | Lithuania |
|
||||
| [Table Stable](http://www.tablestable.com/en/products/list/2/) | Switzerland |
|
||||
| [Accurion](https://www.halcyonics.com/active-vibration-isolation-products) | Germany |
|
||||
| [Vibiso](https://vibiso.com/?page_id=3433) | USA |
|
||||
|
||||
|
||||
## Vibration Isolating Pads {#vibration-isolating-pads}
|
||||
|
||||
| Manufacturer | links | Country |
|
||||
|--------------|----------------------------------|---------|
|
||||
| ACE | [link](https://www.ace-ace.com/) | Germany |
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,21 @@
|
||||
+++
|
||||
title = "Actuator Fusion"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
: [Complementary Filters]({{< relref "complementary_filters.md" >}})
|
||||
|
||||
Mention in the literature:
|
||||
|
||||
- (<a href="#citeproc_bib_item_2">Beijen et al. 2019</a>)
|
||||
- (<a href="#citeproc_bib_item_1">Beijen 2018</a>) (section 6.3.1)
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_1"></a>Beijen, MA. 2018. “Disturbance Feedforward Control for Vibration Isolation Systems: Analysis, Design, and Implementation.” Technische Universiteit Eindhoven.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_2"></a>Beijen, Michiel A., Marcel F. Heertjes, Hans Butler, and Maarten Steinbuch. 2019. “Mixed Feedback and Feedforward Control Design for Multi-Axis Vibration Isolation Systems.” <i>Mechatronics</i> 61: 106–16. doi:<a href="https://doi.org/10.1016/j.mechatronics.2019.06.005">10.1016/j.mechatronics.2019.06.005</a>.</div>
|
||||
</div>
|
||||
@@ -0,0 +1,45 @@
|
||||
+++
|
||||
title = "Actuators"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
category = "equipment"
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
|
||||
## Short Stroke Actuators {#short-stroke-actuators}
|
||||
|
||||
For short stroke and very high dynamic applications, mainly two types of actuators can be used:
|
||||
|
||||
- [Voice Coil Actuators]({{< relref "voice_coil_actuators.md" >}})
|
||||
- [Piezoelectric Actuators]({{< relref "piezoelectric_actuators.md" >}})
|
||||
|
||||
|
||||
## Long Stroke Actuators {#long-stroke-actuators}
|
||||
|
||||
- Linear motors
|
||||
- Piezoelectric Walking Drive ([PI](https://www.physikinstrumente.com/en/expertise/technology/piezoelectric-drives/piezowalk-piezo-motors/))
|
||||
|
||||
Rotational drives can be combined with ball-screw mechanisms for long (infinite) axial motion:
|
||||
|
||||
- Brush-less DC Motor. See (<a href="#citeproc_bib_item_3">Yedamale 2003</a>) and this [working principle](https://www.electricaltechnology.org/2016/05/bldc-brushless-dc-motor-construction-working-principle.html).
|
||||
- [Stepper Motor]({{< relref "stepper_motor.md" >}})
|
||||
|
||||
|
||||
## How to choose the correct actuator for my application? {#how-to-choose-the-correct-actuator-for-my-application}
|
||||
|
||||
For vibration isolation:
|
||||
|
||||
- In (<a href="#citeproc_bib_item_1">Ito and Schitter 2016</a>), the effect of the actuator stiffness on the attainable vibration isolation is studied ([Notes]({{< relref "ito16_compar_class_high_precis_actuat.md" >}}))
|
||||
- (<a href="#citeproc_bib_item_2">Murugesan 1981</a>) On overview of electric motors for space applications
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_1"></a>Ito, Shingo, and Georg Schitter. 2016. “Comparison and Classification of High-Precision Actuators Based on Stiffness Influencing Vibration Isolation.” <i>IEEE/ASME Transactions on Mechatronics</i> 21 (2): 1169–78. doi:<a href="https://doi.org/10.1109/tmech.2015.2478658">10.1109/tmech.2015.2478658</a>.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_2"></a>Murugesan, S. 1981. “An Overview of Electric Motors for Space Applications.” <i>IEEE Transactions on Industrial Electronics and Control Instrumentation</i> IECI-28 (4): 260–65. doi:<a href="https://doi.org/10.1109/TIECI.1981.351050">10.1109/TIECI.1981.351050</a>.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_3"></a>Yedamale, Padmaraja. 2003. “Brushless Dc (BLDC) Motor Fundamentals.” <i>Microchip Technology Inc</i> 20: 3–15.</div>
|
||||
</div>
|
||||
@@ -0,0 +1,74 @@
|
||||
+++
|
||||
title = "Air Bearing"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
|
||||
## Advantages of air bearing {#advantages-of-air-bearing}
|
||||
|
||||
Advantages of air bearings compared to roller bearings:
|
||||
|
||||
- **low friction**: because air bearing have almost zero static friction, this enables infinite resolution of motion that is highly repeatable.
|
||||
Friction in air bearing is a function of air shear, which is itself a function of velocity.
|
||||
- **zero wear**: non-contact motion means virtually zero wear owing to friction, resulting in consistent machine and minimal particulate generation
|
||||
- **straighter motion**: rolling element bearings are directly influence by surface finishing and irregularities on the guide surface. The air bearing's fluid film layer averages these errors resulting in straighter motion
|
||||
- **silent and smooth operation**: recirculating rollers or balls create noise and vibration as hard elements are loaded, unloaded and change directions in return tubes. Air bearings have no dynamic components resulting in virtually silent operation
|
||||
- **higher damping**: being fluid film bearings, air bearings have a squeeze film damping effect resulting in higher dynamic stiffness and stability
|
||||
- **no lubrication**:
|
||||
|
||||
|
||||
## Air bearing stiffness {#air-bearing-stiffness}
|
||||
|
||||
Observing [Figure 1](#figure--fig:air-bearing-stiffness-gap), we see that air bearings do not have a linear stiffness curve but rather an exponential one, producing higher and higher stiffness values as the film becomes thinner and the loading becomes higher.
|
||||
|
||||
<a id="figure--fig:air-bearing-stiffness-gap"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/air_bearing_stiffness_gap.png" caption="<span class='figure-number'>Figure 1: </span>Lift/load curve of a typical air bearing. The slope of the curve is representative of the bearing stiffness. A vertical line represent infinite stiffness and an horizontal line would represent zero stiffness" >}}
|
||||
|
||||
Because air is a compressible fluid, it possesses its own spring rate, or stiffness.
|
||||
Higher pressures effectively act as a preload on the "air spring", and if we thing of the air column as a spring of arbitrary height, compressing or shortening the spring will increase its stiffness as the air attempts to "push back".
|
||||
Stiffness in an air bearing system is a product of pressure in the air gap, thickness of the air gap and the projected surface area of the bearing.
|
||||
|
||||
|
||||
## Orifice and porous technology {#orifice-and-porous-technology}
|
||||
|
||||
Air bearings generally fall into one of two categories: orifice or porous media bearings.
|
||||
|
||||
In orifice compensation bearings, the precisely sized orifices are strategically placed on the bearing, and are often combined with groove to distribute the pressurized air as evenly as possible across the bearing face.
|
||||
However, should the bearing face become scratched across a groove or near an orifice, the volume or air which escapes via the scratch in the surface may be more than the orifice can supply, causing a bearing crash.
|
||||
|
||||
Porous media air bearings control the airflow across the entire bearing surface through millions of sub-micron holes in the porous material.
|
||||
Due to the porous nature, even if some of the holes become clogged or damaged, the air will continue to be supplied to the majority of the bearing face.
|
||||
|
||||
|
||||
## Air Bearing Components {#air-bearing-components}
|
||||
|
||||
| Manufacturer | Country |
|
||||
|----------------------------------------------------------------------------------------------------------------------------------------------|---------|
|
||||
| [New way](https://www.newwayairbearings.com/catalog/components/) ([IBSPE](https://www.ibspe.com/air-bearings/flat-air-bearings) distributor) | USA |
|
||||
| [Positechnics](http://positechnics.fr/index.adml?r=176) | |
|
||||
| [Huber](https://www.xhuber.com/en/products/4-accessories/41-mechanics/airpads/) | |
|
||||
| [Specialty Components](https://www.specialtycomponents.com/) | USA |
|
||||
| [Fuild Film Devices](http://www.fluidfilmdevices.co.uk/index.html) | UK |
|
||||
| [AeroLas](https://aerolas.de/technologies/air-bearing-technology/?lang=en) | |
|
||||
|
||||
|
||||
## Linear Air Bearing Stages {#linear-air-bearing-stages}
|
||||
|
||||
- <https://microplan-group.com/en/>
|
||||
- <https://www.aerotech.com/motion-and-positioning/stages-actuators-products/?pagenum=1&CATEGORY=Linear+Motion&AXIS+CONFIGURATION=Single+Axis&AXIS+ORIENTATION=Horizontal&BEARING+TYPE=Air+Bearing>
|
||||
- <https://www.pi-usa.us/en/products/air-bearings-ultra-high-precision-stages/a-10x-piglide-rb-linear-air-bearing-module-900716>
|
||||
- <https://www.ibspe.com/air-bearings/air-slides>
|
||||
|
||||
|
||||
## Spindle Air Bearing {#spindle-air-bearing}
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,166 @@
|
||||
+++
|
||||
title = "Analog to Digital Converters"
|
||||
author = ["Dehaeze Thomas"]
|
||||
keywords = ["electronics"]
|
||||
draft = false
|
||||
category = "equipment"
|
||||
+++
|
||||
|
||||
Tags
|
||||
: [Electronics]({{< relref "electronics.md" >}})
|
||||
|
||||
|
||||
## Types of Analog to Digital Converters {#types-of-analog-to-digital-converters}
|
||||
|
||||
<https://dewesoft.com/daq/types-of-adc-converters>
|
||||
|
||||
- Delta Sigma (<a href="#citeproc_bib_item_1">Baker 2011</a>)
|
||||
- Successive Approximation
|
||||
|
||||
|
||||
## Power Spectral Density of the Quantization Noise {#power-spectral-density-of-the-quantization-noise}
|
||||
|
||||
This analysis is taken from [here](https://www.allaboutcircuits.com/technical-articles/quantization-nois-amplitude-quantization-error-analog-to-digital-converters/).
|
||||
|
||||
Let's note:
|
||||
|
||||
- \\(q = \frac{\Delta V}{2^n}\\) the quantization in [V], which is the corresponding value in [V] of the least significant bit
|
||||
- \\(\Delta V\\) is the full range of the ADC in [V]
|
||||
- \\(n\\) is the number of ADC's bits
|
||||
- \\(f\_s\\) is the sample frequency in [Hz]
|
||||
|
||||
Let's suppose that the ADC is ideal and the only noise comes from the quantization error.
|
||||
Interestingly, the noise amplitude is uniformly distributed.
|
||||
|
||||
The quantization noise can take a value between \\(\pm q/2\\), and the probability density function is constant in this range (i.e., it’s a uniform distribution).
|
||||
Since the integral of the probability density function is equal to one, its value will be \\(1/q\\) for \\(-q/2 < e < q/2\\) (Fig. [Figure 1](#figure--fig:probability-density-function-adc)).
|
||||
|
||||
<a id="figure--fig:probability-density-function-adc"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/probability_density_function_adc.png" caption="<span class='figure-number'>Figure 1: </span>Probability density function \\(p(e)\\) of the ADC error \\(e\\)" >}}
|
||||
|
||||
Now, we can calculate the time average power of the quantization noise as
|
||||
|
||||
\begin{equation}
|
||||
P\_q = \int\_{-q/2}^{q/2} e^2 p(e) de = \frac{q^2}{12}
|
||||
\end{equation}
|
||||
|
||||
The other important parameter of a noise source is the power spectral density (PSD), which indicates how the noise power spreads in different frequency bands.
|
||||
To find the power spectral density, we need to calculate the Fourier transform of the autocorrelation function of the noise.
|
||||
|
||||
Assuming that the noise samples are not correlated with one another, we can approximate the autocorrelation function with a delta function in the time domain.
|
||||
Since the Fourier transform of a delta function is equal to one, the **power spectral density will be frequency independent**.
|
||||
Therefore, the quantization noise is white noise with total power equal to \\(P\_q = \frac{q^2}{12}\\).
|
||||
|
||||
Thus, the two-sided PSD (from \\(\frac{-f\_s}{2}\\) to \\(\frac{f\_s}{2}\\)), we should divide the noise power \\(P\_q\\) by \\(f\_s\\):
|
||||
|
||||
\begin{equation}
|
||||
\int\_{-f\_s/2}^{f\_s/2} \Gamma(f) d f = f\_s \Gamma = \frac{q^2}{12}
|
||||
\end{equation}
|
||||
|
||||
<div class="important">
|
||||
|
||||
Finally, the Power Spectral Density of the quantization noise of an ADC is equal to:
|
||||
|
||||
\begin{equation}
|
||||
\begin{aligned}
|
||||
\Gamma &= \frac{q^2}{12 f\_s} \\\\
|
||||
&= \frac{\left(\frac{\Delta V}{2^n}\right)^2}{12 f\_s} \text{ in } \left[ \frac{V^2}{Hz} \right]
|
||||
\end{aligned}
|
||||
\end{equation}
|
||||
|
||||
</div>
|
||||
|
||||
<div class="exampl">
|
||||
|
||||
Let's take a 18bits ADC with a range of +/-10V and a sample frequency of 10kHz.
|
||||
|
||||
The quantization is:
|
||||
\\[ q = \frac{20}{2^{18}} = 0.000076 \ [V] = 76 \ [\mu V] \\]
|
||||
|
||||
\\[ \Gamma\_Q = \frac{q^2}{12 f\_N} = 4.85 \cdot 10^{-14} \quad [V^2/Hz] \\]
|
||||
|
||||
</div>
|
||||
|
||||
{{< youtube b9lxtOJj3yU >}}
|
||||
|
||||
Also see (<a href="#citeproc_bib_item_3">Kester 2005</a>).
|
||||
|
||||
|
||||
## Link between required dynamic range and effective number of bits {#link-between-required-dynamic-range-and-effective-number-of-bits}
|
||||
|
||||
<a id="figure--fig:dynamic-range-enob"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/dynamic_range_enob.png" caption="<span class='figure-number'>Figure 2: </span>Relation between Dynamic range and required number of bits (effective)" >}}
|
||||
|
||||
|
||||
## Oversampling {#oversampling}
|
||||
|
||||
(<a href="#citeproc_bib_item_4">Lab 2013</a>)
|
||||
|
||||
To have additional \\(w\\) bits of resolution, the oversampling frequency \\(f\_{os}\\) should be:
|
||||
|
||||
\begin{equation}
|
||||
f\_{os} = 4^w \cdot f\_s
|
||||
\end{equation}
|
||||
|
||||
(NO_ITEM_DATA:hauser91_princ_overs_conver)
|
||||
|
||||
|
||||
### When Oversampling and Averaging Will Work {#when-oversampling-and-averaging-will-work}
|
||||
|
||||
> Key points to consider are:
|
||||
>
|
||||
> - The noise must approximate **white noise** with uniform power spectral density over the frequency band of interest.
|
||||
> - The **noise amplitude must be sufficient** to cause the input signal to change randomly from sample to sample by amounts comparable to at least the distance between two adjacent codes (i.e., 1 LSB).
|
||||
> - The input signal can be represented as a random variable that has equal probability of existing at any value between two adjacent ADC codes.
|
||||
|
||||
|
||||
## Sigma Delta ADC {#sigma-delta-adc}
|
||||
|
||||
(<a href="#citeproc_bib_item_6">Pisani 2018</a>)
|
||||
|
||||
From (<a href="#citeproc_bib_item_7">Schmidt, Schitter, and Rankers 2020</a>):
|
||||
|
||||
> The low cost and excellent linearity properties of the Sigma-Delta ADC have replaced other ADC types in many measurement and registration systems, especially where storage of data is more important than real-time measurement.
|
||||
> This has typically been the case in audio recording and reproduction.
|
||||
> The reason why this principle is less applied with real-time measurements is the time delay between the bitstream representing the actual value and the availability of the corresponding value after the decimation filter.
|
||||
> The resulting **latency** amounts with a low cost sigma-delta ADC approximately **twenty times the sampling period of the decimated digital output**.
|
||||
|
||||
<div class="exampl">
|
||||
|
||||
A 50kHz decimated sampling frequency has a sample period of 20us, resulting in a total latency of more than 400us.
|
||||
This would cause almost 180 degrees phase delay for a 1kHz signal frequency, which is not acceptable with high bandwidth motion control systems.
|
||||
This phenomenon clearly illustrates the necessity to distinguish sample frequency from speed.
|
||||
|
||||
</div>
|
||||
|
||||
Therefore, even though there are sigma-delta ADC with high precision and sampling rate, they add large latency (i.e. time delay) that are very problematic for feedback systems.
|
||||
|
||||
> The SAR-ADC (Successive approximation ADCs) is still the mostly applied type for data-acquisition and feedback systems because of its single sample latency.
|
||||
|
||||
<https://www.crystalinstruments.com/antialiasing-filter-and-phase-match>
|
||||
|
||||
|
||||
## Anti-Aliasing Filters {#anti-aliasing-filters}
|
||||
|
||||
(<a href="#citeproc_bib_item_5">Microchip 1999</a>)
|
||||
|
||||
|
||||
## State of the art ADC {#state-of-the-art-adc}
|
||||
|
||||
(<a href="#citeproc_bib_item_2">Beev 2018</a>)
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_1"></a>Baker, Bonnie. 2011. “How Delta-Sigma Adcs Work, Part.” <i>Analog Applications</i> 7.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_2"></a>Beev, Nikolai. 2018. “Analog-to-Digital Conversion beyond 20 Bits.” In <i>2018 IEEE International Instrumentation and Measurement Technology Conference (I2MTC)</i>. doi:<a href="https://doi.org/10.1109/i2mtc.2018.8409543">10.1109/i2mtc.2018.8409543</a>.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_3"></a>Kester, Walt. 2005. “Taking the Mystery out of the Infamous Formula, $snr = 6.02 N + 1.76 Db$, and Why You Should Care.”</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_4"></a>Lab, Silicon. 2013. “Improving the ADC Resolution by Oversampling and Averaging.” Silicon Laboratories.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_5"></a>Microchip. 1999. “Anti-Aliasing, Analog Filters for Data Acquisition Systems.”</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_6"></a>Pisani, Brian. 2018. “Accounting for Delay from Multiple Sources in Delta-Sigma ADCs.”</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_7"></a>Schmidt, R. M., G. Schitter, and A. Rankers. 2020. <i>The Design of High Performance Mechatronics - Third Revised Edition</i>. Ios Press.</div>
|
||||
<div class="csl-entry">NO_ITEM_DATA:hauser91_princ_overs_conver</div>
|
||||
</div>
|
||||
@@ -0,0 +1,29 @@
|
||||
+++
|
||||
title = "Angular Velocity"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
|
||||
## Non-integrability of the angular velocity vector {#non-integrability-of-the-angular-velocity-vector}
|
||||
|
||||
The non-integrability of the angular velocity vector is well described in (<a href="#citeproc_bib_item_1">Legnani et al. 2012</a>).
|
||||
|
||||
> It is well known that the angular velocity vector is not the time derivative of any set of angular coordinates.
|
||||
> In other words, it is impossible to define a set of three coordinates representing the 3D angular position of a body whose time derivative is equal to the angular velocity vector.
|
||||
|
||||
This is illustrated in [Figure 1](#figure--fig:angular-nonintegrability).
|
||||
|
||||
<a id="figure--fig:angular-nonintegrability"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/angular_nonintegrability.png" caption="<span class='figure-number'>Figure 1: </span>Effect of different sequences of rotations of a rigid body. In both cases we get Rot(x)=0, Rot(y)=90deg and Rot(z)=90deg" >}}
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_1"></a>Legnani, G., I. Fassi, H. Giberti, S. Cinquemani, and D. Tosi. 2012. “A New Isotropic and Decoupled 6-Dof Parallel Manipulator.” <i>Mechanism and Machine Theory</i> 58: 64–81. doi:<a href="https://doi.org/10.1016/j.mechmachtheory.2012.07.008">10.1016/j.mechmachtheory.2012.07.008</a>.</div>
|
||||
</div>
|
||||
@@ -0,0 +1,14 @@
|
||||
+++
|
||||
title = "Anti-Windup Control"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,18 @@
|
||||
+++
|
||||
title = "Bipolar Transistor"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
<a id="figure--fig:bipolar-transistor-basic-circuits"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/bipolar_transistor_basic_circuits.svg" caption="<span class='figure-number'>Figure 1: </span>5 basic circuits using the bipolar transistor" >}}
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,28 @@
|
||||
+++
|
||||
title = "Brushless DC Motor"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
|
||||
## Control of Brushless motors {#control-of-brushless-motors}
|
||||
|
||||
<https://fr.mathworks.com/videos/series/brushless-dc-motors.html>
|
||||
|
||||
|
||||
## Manufacturers {#manufacturers}
|
||||
|
||||
| Manufacturers | Country |
|
||||
|--------------------------------------------------------------------------------------------|---------|
|
||||
| [Faulhaber](https://www.faulhaber.com/en/products/brushless-dc-motors/) | |
|
||||
| [Maxon](https://www.maxongroup.com/maxon/view/content/Overview-brushless-DC-motors) | |
|
||||
| [OrientalMotors](https://www.orientalmotor.com/brushless-dc-motors-gear-motors/index.html) | |
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,14 @@
|
||||
+++
|
||||
title = "Bumpless Transfer"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,44 @@
|
||||
+++
|
||||
title = "Cables"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
category = "equipment"
|
||||
+++
|
||||
|
||||
Tags
|
||||
: [Connectors]({{< relref "connectors.md" >}})
|
||||
|
||||
|
||||
## Typical Cables {#typical-cables}
|
||||
|
||||
- Coaxial cables
|
||||
- Twisted cables
|
||||
- Twisted shielded cables
|
||||
|
||||
|
||||
## Manufacturers {#manufacturers}
|
||||
|
||||
| Manufacturers | Country |
|
||||
|--------------------------------------------------------------------|-------------|
|
||||
| [LEMO](https://www.lemo.com/en) | Switzerland |
|
||||
| [Helukabel](https://www.helukabel.com/fr/home.html) | Germany |
|
||||
| [Belden](https://www.belden.com/) | USA |
|
||||
| [Alphawire](https://www.alphawire.com/) | USA |
|
||||
| [Phoenix Contact](https://www.phoenixcontact.com/online/portal/fr) | Germany |
|
||||
|
||||
|
||||
## Software {#software}
|
||||
|
||||
- [WireViz](https://github.com/formatc1702/WireViz) is a nice software to easily document cables and wiring harnesses
|
||||
|
||||
|
||||
## Cable Chains {#cable-chains}
|
||||
|
||||
- <https://www.gore.com/products/gore-high-flex-cables-assemblies-lithography>
|
||||
- <https://www.igus.eu/info/energychains>
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,47 @@
|
||||
+++
|
||||
title = "Capacitive Sensors"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
category = "equipment"
|
||||
+++
|
||||
|
||||
Tags
|
||||
: [Position Sensors]({{< relref "position_sensors.md" >}})
|
||||
|
||||
|
||||
## Description of Capacitive Sensors {#description-of-capacitive-sensors}
|
||||
|
||||
- <http://www.lionprecision.com/tech-library/technotes/cap-0020-sensor-theory.html>
|
||||
- <https://www.lionprecision.com/comparing-capacitive-and-eddy-current-sensors>
|
||||
|
||||
|
||||
## Manufacturers {#manufacturers}
|
||||
|
||||
| Manufacturers | Country |
|
||||
|--------------------------------------------------------------------------------------------------------|-------------|
|
||||
| [Micro Sense](http://www.microsense.net/products-position-sensors.htm) | USA |
|
||||
| [Micro-Epsilon](https://www.micro-epsilon.com/displacement-position-sensors/capacitive-sensor/) | Germany |
|
||||
| [PI](https://www.physikinstrumente.com/en/technology/sensor-technologies/capacitive-sensors/) | Germany |
|
||||
| [Unipulse](https://www.unipulse.com/product/ps-ia/) | Japan |
|
||||
| [Lion-Precision](https://www.lionprecision.com/products/capacitive-sensors) | USA |
|
||||
| [Fogale](http://www.fogale.fr/brochures.html) | USA |
|
||||
| [Queensgate](https://www.nanopositioning.com/product-category/nanopositioning/nanopositioning-sensors) | UK |
|
||||
| [Capacitec](https://www.capacitec.com/Displacement-Sensing-Systems) | USA |
|
||||
| [MTIinstruments](https://vitrek.com/mti-instruments/non-contact-measurement/) | USA |
|
||||
| [Althen](https://www.althensensors.com/sensors/linear-position-sensors/capacitive-position-sensors/) | Netherlands |
|
||||
|
||||
|
||||
## Comparison {#comparison}
|
||||
|
||||
| | RMS noise | Noise Density (%/Hz^.5) | Linearity |
|
||||
|----------------------|---------------------|-------------------------|-----------|
|
||||
| Fogale MC900 | < 0.005% (10kHz) | 0.000050 | <0.2% |
|
||||
| Micro-Epsilon DL6230 | 0.005% (5kHz) | 0.000070 | 0.05% |
|
||||
| Lion CPL290 | 0.003% (15kHz) | 0.000025 | <0.2% |
|
||||
| PI | 0.002% (3kHz) | 0.000036 | <0.1 |
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,56 @@
|
||||
+++
|
||||
title = "Charge Amplifiers"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
category = "equipment"
|
||||
+++
|
||||
|
||||
Tags
|
||||
: [Electronics]({{< relref "electronics.md" >}})
|
||||
|
||||
|
||||
## Description {#description}
|
||||
|
||||
A charge amplifier outputs a voltage proportional to the charge generated by a sensor connected to its inputs.
|
||||
|
||||
This can be typically used to interface with piezoelectric sensors.
|
||||
|
||||
|
||||
## Basic Circuit {#basic-circuit}
|
||||
|
||||
Two basic circuits of charge amplifiers are shown in [Figure 1](#figure--fig:charge-amplifier-circuit) (taken from (<a href="#citeproc_bib_item_1">Fleming 2010</a>)) and [Figure 2](#figure--fig:charge-amplifier-circuit-bis) (taken from (<a href="#citeproc_bib_item_2">Schmidt, Schitter, and Rankers 2014</a>))
|
||||
|
||||
<a id="figure--fig:charge-amplifier-circuit"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/charge_amplifier_circuit.png" caption="<span class='figure-number'>Figure 1: </span>Electrical model of a piezoelectric force sensor is shown in gray. The op-amp charge amplifier is shown on the right. The output voltage \\(V\_s\\) equal to \\(-q/C\_s\\)" >}}
|
||||
|
||||
<a id="figure--fig:charge-amplifier-circuit-bis"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/charge_amplifier_circuit_bis.png" caption="<span class='figure-number'>Figure 2: </span>A piezoelectric accelerometer with a charge amplifier as signal conditioning element" >}}
|
||||
|
||||
The input impedance of the charge amplifier is very small (unlike when using a voltage amplifier).
|
||||
|
||||
The gain of the charge amplified ([Figure 1](#figure--fig:charge-amplifier-circuit)) is equal to:
|
||||
\\[ \frac{V\_s}{q} = \frac{-1}{C\_s} \\]
|
||||
|
||||
|
||||
## Manufacturers {#manufacturers}
|
||||
|
||||
| Manufacturers | Country |
|
||||
|----------------------------------------------------------------------------------------------------------------------------------------------|---------|
|
||||
| [PCB](https://www.pcb.com/sensors-for-test-measurement/electronics/line-powered-multi-channel-signal-conditioners) | USA |
|
||||
| [HBM](https://www.hbm.com/en/2660/paceline-cma-charge-amplifier-analogamplifier/) | Germany |
|
||||
| [Kistler](https://www.kistler.com/fr/produits/composants/conditionnement-de-signal/) | Swiss |
|
||||
| [MMF](https://www.mmf.de/signal_conditioners.htm) | Germany |
|
||||
| [DJB](https://www.djbinstruments.com/products/instrumentation/view/9-Channel-Charge-Voltage-Amplifier-IEPE-Signal-Conditioning-Rack-Mounted) | UK |
|
||||
| [MTI Instruments](https://www.mtiinstruments.com/products/turbine-balancing-vibration-analysis/charge-amplifiers/ca1800/) | USA |
|
||||
| [Sinocera](http://www.china-yec.net/instruments/signal-conditioner/multi-channels-charge-amplifier.html) | China |
|
||||
| [Physimetron](http://www.physimetron.de/produkte_en.html) | Germany |
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_1"></a>Fleming, A.J. 2010. “Nanopositioning System with Force Feedback for High-Performance Tracking and Vibration Control.” <i>IEEE/ASME Transactions on Mechatronics</i> 15 (3): 433–47. doi:<a href="https://doi.org/10.1109/tmech.2009.2028422">10.1109/tmech.2009.2028422</a>.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_2"></a>Schmidt, R Munnig, Georg Schitter, and Adrian Rankers. 2014. <i>The Design of High Performance Mechatronics - 2nd Revised Edition</i>. Ios Press.</div>
|
||||
</div>
|
||||
@@ -0,0 +1,43 @@
|
||||
+++
|
||||
title = "Collocated Control"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
: [Actuators]({{< relref "actuators.md" >}}), [Force Sensors]({{< relref "force_sensors.md" >}}), [Position Sensors]({{< relref "position_sensors.md" >}}), [Inertial Sensors]({{< relref "inertial_sensors.md" >}})
|
||||
|
||||
|
||||
## Collocated/Dual actuator and sensor {#collocated-dual-actuator-and-sensor}
|
||||
|
||||
According to (<a href="#citeproc_bib_item_1">Preumont 2018</a>):
|
||||
|
||||
> A **collocated** control system is a control system where the actuator and the sensor are attached to the same degree of freedom.
|
||||
>
|
||||
> It is not sufficient to be attached to the same location, but they must also be **dual**, that is a force actuator must be associated with a translation sensor (measuring displacement, velocity, or acceleration), in such a way that the product of the actuator signal and the sensor signal represents the energy (power) exchange between the structure and the control system.
|
||||
|
||||
|
||||
## Nearly Collocated Actuator Sensor Pair {#nearly-collocated-actuator-sensor-pair}
|
||||
|
||||
From [Figure 1](#figure--fig:preumont18-nearly-collocated-schematic), it is clear that at some frequency / for some mode, the actuator and the sensor will not be collocated anymore (here starting with mode 3).
|
||||
|
||||
<a id="figure--fig:preumont18-nearly-collocated-schematic"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/preumont18_nearly_collocated_schematic.png" caption="<span class='figure-number'>Figure 1: </span>Mode shapes for a uniform beam. \\(u\\) and \\(y\\) are not collocated actuator and sensor" >}}
|
||||
|
||||
|
||||
## Piezoelectric Stack as a sensor/actuator pair {#piezoelectric-stack-as-a-sensor-actuator-pair}
|
||||
|
||||
One can use on part of a [Piezoelectric Stack]({{< relref "piezoelectric_actuators.md" >}}) as an actuator and the other part as a sensor.
|
||||
|
||||
At some frequency, the sensor/actuator pair will not be collocated anymore.
|
||||
|
||||
If we want to be collocated up to the highest possible frequency, the sensor part should be made small.
|
||||
Of course, this will reduce the sensibility.
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_1"></a>Preumont, A. 2018. <i>Vibration Control of Active Structures - Fourth Edition</i>. Solid Mechanics and Its Applications. Springer International Publishing. doi:<a href="https://doi.org/10.1007/978-3-319-72296-2">10.1007/978-3-319-72296-2</a>.</div>
|
||||
</div>
|
||||
@@ -0,0 +1,52 @@
|
||||
+++
|
||||
title = "Communication Protocol"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
|
||||
## Value Communication {#value-communication}
|
||||
|
||||
Typically used for encoders.
|
||||
|
||||
| | |
|
||||
|--|---|
|
||||
| | |
|
||||
|
||||
|
||||
### Quadrature (A-Quad-B) {#quadrature--a-quad-b}
|
||||
|
||||
|
||||
### Step-Dir {#step-dir}
|
||||
|
||||
|
||||
### SSI and BISS {#ssi-and-biss}
|
||||
|
||||
|
||||
### EnDAT {#endat}
|
||||
|
||||
|
||||
### HSSL {#hssl}
|
||||
|
||||
|
||||
### SPI {#spi}
|
||||
|
||||
|
||||
### RS232 and RS422 {#rs232-and-rs422}
|
||||
|
||||
ASCII
|
||||
|
||||
|
||||
### RS485 {#rs485}
|
||||
|
||||
|
||||
### EtherCAT {#ethercat}
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,26 @@
|
||||
+++
|
||||
title = "Complementary Filters"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
|
||||
## Complementary Filters Synthesis {#complementary-filters-synthesis}
|
||||
|
||||
The shaping of complementary filters can be done using the \\(\mathcal{H}\_\infty\\) synthesis (<a href="#citeproc_bib_item_1">Dehaeze, Verma, and Collette 2019</a>).
|
||||
|
||||
|
||||
## First Order complementary filters {#first-order-complementary-filters}
|
||||
|
||||
|
||||
## Second Order complementary filters {#second-order-complementary-filters}
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_1"></a>Dehaeze, T., M. Verma, and C. Collette. 2019. “Complementary Filters Shaping Using $H_\Infty$ Synthesis.” In <i>7th International Conference on Control, Mechatronics and Automation (ICCMA)</i>, 459–64. doi:<a href="https://doi.org/10.1109/ICCMA46720.2019.8988642">10.1109/ICCMA46720.2019.8988642</a>.</div>
|
||||
</div>
|
||||
@@ -0,0 +1,33 @@
|
||||
+++
|
||||
title = "Connectors"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
category = "equipment"
|
||||
+++
|
||||
|
||||
Tags
|
||||
: [Cables]({{< relref "cables.md" >}})
|
||||
|
||||
|
||||
## Manufacturers {#manufacturers}
|
||||
|
||||
| Manufacturers | Country |
|
||||
|----------------------------------------------------|-------------|
|
||||
| [LEMO](https://www.lemo.com/en) | Switzerland |
|
||||
| [Fischer](https://www.fischerconnectors.com/uk/en) | Switzerland |
|
||||
| [EDO](https://www.odu-connectors.com/) | Germany |
|
||||
|
||||
|
||||
## BNC {#bnc}
|
||||
|
||||
BNC connectors can have an impedance of 50Ohms or 75Ohms as shown in [Figure 1](#figure--fig:bnc-50-75-ohms).
|
||||
|
||||
<a id="figure--fig:bnc-50-75-ohms"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/bnc_50_75_ohms.jpg" caption="<span class='figure-number'>Figure 1: </span>75Ohms and 50Ohms BNC connectors" >}}
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,17 @@
|
||||
+++
|
||||
title = "Continuous Transfer Functions"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
|
||||
## Typical Transfer Functions {#typical-transfer-functions}
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,26 @@
|
||||
+++
|
||||
title = "Cubic Architecture"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
|
||||
## Description of the Cubic Architecture {#description-of-the-cubic-architecture}
|
||||
|
||||
|
||||
## Special Properties {#special-properties}
|
||||
|
||||
Cubic Stewart Platforms can be decoupled provided that (from (<a href="#citeproc_bib_item_1">Chen and McInroy 2000</a>))
|
||||
|
||||
> 1. The payload mass-inertia matrix is diagonal
|
||||
> 2. If a mutually orthogonal geometry has been selected, the payload's center of mass must coincide with the center of the cube formed by the orthogonal struts.
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_1"></a>Chen, Yixin, and J.E. McInroy. 2000. “Identification and Decoupling Control of Flexure Jointed Hexapods.” In <i>Proceedings 2000 ICRA. Millennium Conference. IEEE International Conference on Robotics and Automation. Symposia Proceedings (Cat. No.00CH37065)</i>. doi:<a href="https://doi.org/10.1109/robot.2000.844878">10.1109/robot.2000.844878</a>.</div>
|
||||
</div>
|
||||
@@ -0,0 +1,139 @@
|
||||
+++
|
||||
title = "Decimation"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
: [Digital Signal Processing]({{< relref "digital_signal_processing.md" >}})
|
||||
|
||||
<div class="definition">
|
||||
|
||||
Decimation is the two-step process of low pass filtering followed by and operation known as downsampling.
|
||||
|
||||
</div>
|
||||
|
||||
We can downsample a sequence of sampled signal values by a factor of \\(M\\) by retaining every Mth sample and discarding all the remaining samples.
|
||||
Relative to the original sample rate \\(f\_{s,\text{old}}\\), the sample rate of the downsampled sequence is:
|
||||
|
||||
\begin{equation}
|
||||
f\_{s,\text{new}} = \frac{f\_{s,\text{old}}}{M}
|
||||
\end{equation}
|
||||
|
||||
<div class="exampl">
|
||||
|
||||
For example, assume that an analog sinewave has been sampled to produce \\(x\_{\text{old}}(n)\\).
|
||||
The downsampled sequence is:
|
||||
\\[ x\_{\text{new}}(m) = x\_{\text{old}}(Nm) \\]
|
||||
where \\(M=3\\), the result is shown in [Figure 1](#figure--fig:decimation-example).
|
||||
|
||||
<a id="figure--fig:decimation-example"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/decimation_example.png" caption="<span class='figure-number'>Figure 1: </span>Sample rate conversion: (a) original sequence; (b) downsampled by \\(M=3\\) sequence" >}}
|
||||
|
||||
</div>
|
||||
|
||||
The spectral implications of downsampling are what we should expect as shown in Figure
|
||||
|
||||
<a id="figure--fig:decimation-spectral-aliasing"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/decimation_spectral_aliasing.png" caption="<span class='figure-number'>Figure 2: </span>Decimation by a factor of three: (a) spectrum of original \\(x\_{\text{old}}(n)\\) signal; (b) spectrum after downsampling by three." >}}
|
||||
|
||||
There is a limit to the amount of downsampling that can be performed relative to the bandwidth \\(B\\) of the original signal.
|
||||
We must ensure that \\(f\_{s,\text{new}} > 2B\\) to present overlapped spectral replications (aliasing errors) after downsampling.
|
||||
|
||||
If a decimation application requires \\(f\_{s,\text{new}}\\) to be less than \\(2B\\), then \\(x\_{\text{old}}(n)\\) must be low pass filtered before the downsampling process if performed.
|
||||
|
||||
|
||||
### Two Stage Decimation {#two-stage-decimation}
|
||||
|
||||
When the desired decimation factor \\(M\\) is larger, say \\(M > 20\\), there is an important feature of the filter / decimation process to keep in mind.
|
||||
Significant low pass filter computational savings may be obtained by implementing the two-stage decimation, shown in [Figure 3](#figure--fig:decimation-two-stages) (b).
|
||||
|
||||
<a id="figure--fig:decimation-two-stages"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/decimation_two_stages.png" caption="<span class='figure-number'>Figure 3: </span>Decimation: (a) single-stage; (b) two-stage" >}}
|
||||
|
||||
The question is: "Given a desired total downsampling factor \\(M\\), what should be the values of \\(M\_1\\) and \\(M\_2\\) to minimize the number of taps in low-pass filters \\(\text{LPF}\_1\\) and \\(\text{LPF}\_2\\)"?
|
||||
|
||||
For two stage decimation, the optimum value for \\(M\_1\\) is:
|
||||
|
||||
\begin{equation} \label{eq:M1opt}
|
||||
M\_{1,\text{opt}} \approx 2 M \cdot \frac{1 - \sqrt{MF/(2-F)}}{2 - F(M+1)}
|
||||
\end{equation}
|
||||
|
||||
where \\(F\\) is the ratio of single-stage low pass filter's transition region width to that filter's stop-band frequency:
|
||||
|
||||
\begin{equation}
|
||||
F = \frac{f\_{\text{stop}} - B^\prime}{f\_{\text{stop}}}
|
||||
\end{equation}
|
||||
|
||||
After using Eq. \ref{eq:M1opt} to determine the optimum first downsampling factor, and setting \\(M\_1\\) equal to the integer sub-multiple of \\(M\\) that is closest to \\(M\_{1,\text{opt}}\\), the second downsampling factor is:
|
||||
|
||||
\begin{equation} \label{eq:M2\_from\_M1}
|
||||
M\_2 = \frac{M}{M\_1}
|
||||
\end{equation}
|
||||
|
||||
<div class="exampl">
|
||||
|
||||
Let's assume we have an \\(x\_{\text{old}}(n)\\) input signal arriving at a sample rate of \\(400\\,kHz\\), and we must decimate that signal by a factor of \\(M=100\\) to obtain a final sample rate of \\(4\\,kHz\\).
|
||||
Also, let's assume the base-band frequency range of interest is from \\(0\\) to \\(B^\prime = 1.8\\,kHz\\), and we want \\(60\\,dB\\) of filter stop-band attenuation.
|
||||
A single stage decimation low-pass filter's frequency response is shown in [Figure 4](#figure--fig:decimation-two-stage-example) (a).
|
||||
The number of taps \\(N\\) required for a single-stage decimation would be:
|
||||
|
||||
\begin{equation}
|
||||
N = \frac{\text{Atten}}{22 (f\_{\text{stop}} - f\_{\text{pass}})} = \frac{60}{22(2.2/400 - 1.8/400)} = 2727
|
||||
\end{equation}
|
||||
|
||||
which is way too large for practical implementation.
|
||||
|
||||
To reduce the number of necessary filter taps, we can partition the decimation problem into two stages.
|
||||
With \\(M = 100\\), \\(F = (2200-1800)/2200\\), Eq. \ref{eq:M1opt} yields \\(M\_{1,\text{opt}} = 26.4\\).
|
||||
The integer sub-multiple of 100 closest to \\(26.4\\) is \\(25\\), so we set \\(M\_1 = 25\\).
|
||||
Next, from Eq. \ref{eq:M2\_from\_M1}, \\(M\_2 = 4\\) is found.
|
||||
|
||||
The first low pass filter has a pass-band cutoff frequency of \\(1.8\\,kHz\\) and its stop-band is \\(400/25 - 1.8 = 14.2\\,kHz\\) ([Figure 4](#figure--fig:decimation-two-stage-example) (d)).
|
||||
The second low pass filter has a pass-band cutoff frequency of \\(1.8\\,kHz\\) and its stop-band is \\(4-1.8 = 2.2\\,kHz\\).
|
||||
The total number of required taps is:
|
||||
|
||||
\begin{equation}
|
||||
N\_{\text{total}} = N\_{\text{LPF}\_1} + N\_{\text{LPF}\_2} = \frac{60}{22(14.2/400-1.8/400)} + \frac{60}{22(2.2/16 - 1.8/16)} \approx 197
|
||||
\end{equation}
|
||||
|
||||
Which is much more efficient that the single stage decimation.
|
||||
|
||||
<a id="figure--fig:decimation-two-stage-example"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/decimation_two_stage_example.png" caption="<span class='figure-number'>Figure 4: </span>Two stage decimation: (a) single-stage filter response; (b): decimation by 100; (c) spectrum of original signal; (d) output spectrum of the \\(M=25\\) down-sampler; (e) output spectrum of the \\(M=4\\) down-sampler." >}}
|
||||
|
||||
</div>
|
||||
|
||||
There are two **practical issues** to consider for two-stage decimation:
|
||||
|
||||
- First, if the dual-filter system is required to have a pass-band peak-peak ripple of \\(R\\) dB, then both filters must be designed to have a pass-band peak-peak ripple of no greater than \\(R/2\\) dB.
|
||||
- Second, the number of multiplications needed to compute each \\(x\_{\text{new}}(m)\\) output sample is much larger than \\(N\_\text{total}\\) because we must compute so many \\(\text{LPF}\_1\\) and \\(\text{LPF}\_2\\) output samples destined to be discarded.
|
||||
|
||||
In order to cope with the second issue, an efficient decimation filter implementation scheme called _polyphase decomposition_ can be used.
|
||||
|
||||
<summary>The advantages of two stage decimation, over single-stage decimation are:
|
||||
|
||||
<ul class="org-ul">
|
||||
<li>an overall reduction in computation workload</li>
|
||||
<li>reduced signal and filter coefficient data storage</li>
|
||||
<li>simpler filter designs</li>
|
||||
<li>a decrease in the ill effects of finite binary-work-length filter coefficients</li>
|
||||
</ul>
|
||||
|
||||
These advantages become more pronounced as the overall desired decimation factor \(M\) becomes larger.</summary>
|
||||
|
||||
|
||||
### References: {#references}
|
||||
|
||||
(<a href="#citeproc_bib_item_1">Lyons 2011</a>)
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_1"></a>Lyons, Richard. 2011. <i>Understanding Digital Signal Processing</i>. Upper Saddle River, NJ: Prentice Hall.</div>
|
||||
</div>
|
||||
@@ -0,0 +1,14 @@
|
||||
+++
|
||||
title = "Decoupled Control"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
: [Multivariable Control]({{< relref "multivariable_control.md" >}})
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,21 @@
|
||||
+++
|
||||
title = "Differential Pairs"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
|
||||
## Resources {#resources}
|
||||
|
||||
<https://www.youtube.com/watch?v=QG0Apol-oj0>
|
||||
|
||||
> One of the main reasons that differential pairs are used whether is between systems, whether is between boards and a system, or whether is across a circuit board, is so that the circuit will ignore offset in ground.
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,90 @@
|
||||
+++
|
||||
title = "Digital Filters"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
A nice open access book on digital filter is accessible here: <https://ccrma.stanford.edu/~jos/filters/filters.html>
|
||||
|
||||
|
||||
## Analog to Digital Filter {#analog-to-digital-filter}
|
||||
|
||||
In order to convert an analog filter (Laplace domain) to a digital filter (z-domain), the `c2d` command can be used ([doc](https://fr.mathworks.com/help/control/ref/lti.c2d.html)).
|
||||
|
||||
<div class="exampl">
|
||||
|
||||
Let's define a simple first order low pass filter in the Laplace domain:
|
||||
|
||||
```matlab
|
||||
s = tf('s');
|
||||
G = 1/(1 + s/(2*pi*10));
|
||||
```
|
||||
|
||||
To obtain the equivalent digital filter:
|
||||
|
||||
```matlab
|
||||
Ts = 1e-3; % Sampling Time [s]
|
||||
Gz = c2d(G, Ts, 'tustin');
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
There are several methods to go from the analog to the digital domain, `Tustin` is the one I use the most as it ensures the stability of the digital filter provided that the analog filter is stable.
|
||||
|
||||
|
||||
## Bilinear transform {#bilinear-transform}
|
||||
|
||||
The bilinear transform also known as the Tustin's method (see the [wikipedia page](https://en.wikipedia.org/wiki/Bilinear_transform)) is used to convert a continuous-time system representations to discrete-time.
|
||||
|
||||
It uses the fact that \\(z = e^{sT} \approx \frac{1 + sT/2}{1-sT/2}\\).
|
||||
|
||||
To go from the Laplace domain to the z-domain, we just have to use the following approximation:
|
||||
|
||||
\begin{equation}
|
||||
\boxed{s \approx \frac{2}{T\_s} \frac{z - 1} {z + 1} = \frac{2}{T\_s}\frac{1 - z^{-1}}{1 + z^{-1}}}
|
||||
\end{equation}
|
||||
|
||||
|
||||
## Standard Digital Filters {#standard-digital-filters}
|
||||
|
||||
|
||||
### First order low pass filter {#first-order-low-pass-filter}
|
||||
|
||||
\begin{equation}
|
||||
G(s) = \frac{1}{1 + s/\omega\_0}
|
||||
\end{equation}
|
||||
|
||||
Using the bilinear transform, we obtain:
|
||||
|
||||
\begin{equation}
|
||||
G(z) = \frac{a(1 + z^{-1})}{1 + b z^{-1}}
|
||||
\end{equation}
|
||||
|
||||
with:
|
||||
|
||||
\begin{align}
|
||||
a &= \frac{2}{T\_s\omega\_0} + 1\\\\
|
||||
b &= \frac{2}{T\_s\omega\_0} - 1
|
||||
\end{align}
|
||||
|
||||
If we want to compute how the filter output \\(y[n]\\) depends on previous output \\(y[n-1]\\), previous input \\(x[n-1]\\) and current input \\(x[n]\\) we can write:
|
||||
|
||||
\begin{equation}
|
||||
y[n] = G(z) x[n]
|
||||
\end{equation}
|
||||
|
||||
By developing the relation and using the fact that \\(z^{-1} x[n] = x[n-1]\\), we obtain:
|
||||
|
||||
\begin{align}
|
||||
y[n] &= a (x[n] + x[n-1]) + b y[n-1] \\\\
|
||||
&= \left( \frac{2}{T\_s \omega\_0} + 1 \right) (x[n] + x[n-1]) + \left(\frac{2}{T\_s\omega\_0} - 1\right) y[n-1]
|
||||
\end{align}
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,22 @@
|
||||
+++
|
||||
title = "Digital Signal Processing"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
|
||||
## References {#references}
|
||||
|
||||
Books:
|
||||
|
||||
- (<a href="#citeproc_bib_item_1">Lyons 2011</a>)
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_1"></a>Lyons, Richard. 2011. <i>Understanding Digital Signal Processing</i>. Upper Saddle River, NJ: Prentice Hall.</div>
|
||||
</div>
|
||||
@@ -0,0 +1,15 @@
|
||||
+++
|
||||
title = "Digital to Analog Converters"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
category = "equipment"
|
||||
+++
|
||||
|
||||
Tags
|
||||
: [Electronics]({{< relref "electronics.md" >}})
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,14 @@
|
||||
+++
|
||||
title = "Direct Velocity Feedback"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
: [Active Damping]({{< relref "active_damping.md" >}})
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,316 @@
|
||||
+++
|
||||
title = "Discrete Transfer Functions"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
: [Digital Filters]({{< relref "digital_filters.md" >}})
|
||||
|
||||
|
||||
## Continuous to discrete transfer function {#continuous-to-discrete-transfer-function}
|
||||
|
||||
In order to convert an analog filter (Laplace domain) to a digital filter (z-domain), the `c2d` command can be used ([doc](https://fr.mathworks.com/help/control/ref/lti.c2d.html)).
|
||||
|
||||
<div class="exampl">
|
||||
|
||||
Let's define a simple first order low pass filter in the Laplace domain:
|
||||
|
||||
```matlab
|
||||
s = tf('s');
|
||||
G = 1/(1 + s/(2*pi*10));
|
||||
```
|
||||
|
||||
To obtain the equivalent digital filter:
|
||||
|
||||
```matlab
|
||||
Ts = 1e-3; % Sampling Time [s]
|
||||
Gz = c2d(G, Ts, 'tustin');
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
There are several methods to go from the analog to the digital domain, `Tustin` is the one I use the most as it ensures the stability of the digital filter provided that the analog filter is stable.
|
||||
|
||||
|
||||
## Obtaining analytical formula of filter {#obtaining-analytical-formula-of-filter}
|
||||
|
||||
|
||||
### Procedure {#procedure}
|
||||
|
||||
The Matlab [Symbolic Toolbox](https://fr.mathworks.com/help/symbolic/) can be used to obtain analytical formula for discrete transfer functions.
|
||||
|
||||
Let's consider a notch filter:
|
||||
|
||||
\begin{equation}
|
||||
G(s) = \frac{s^2 + 2 g\_c \xi \omega\_n s + \omega\_n^2}{s^2 + 2 \xi \omega\_n s + \omega\_n^2}
|
||||
\end{equation}
|
||||
|
||||
with:
|
||||
|
||||
- \\(\omega\_n\\): frequency of the notch
|
||||
- \\(g\_c\\): gain at the notch frequency
|
||||
- \\(\xi\\): damping ratio (notch width)
|
||||
|
||||
First the symbolic variables are declared (`Ts` is the sampling time, `s` the Laplace variable and `z` the "z-transform" variable).
|
||||
|
||||
```matlab
|
||||
%% Declaration of the symbolic variables
|
||||
syms gc wn xi Ts s z
|
||||
```
|
||||
|
||||
Then the bi-linear transformation is performed to go from continuous to discrete:
|
||||
|
||||
```matlab
|
||||
%% Bilinear Transform
|
||||
s = 2/Ts*(z - 1)/(z + 1);
|
||||
```
|
||||
|
||||
The symbolic formula of the notch filter is defined:
|
||||
|
||||
```matlab
|
||||
%% Notch Filter - Symbolic representation
|
||||
Ga = (s^2 + 2*xi*gc*s*wn + wn^2)/(s^2 + 2*xi*s*wn + wn^2);
|
||||
```
|
||||
|
||||
Finally, the numerator and denominator coefficients can be extracted:
|
||||
|
||||
```matlab
|
||||
%% Get numerator and denominator
|
||||
[N,D] = numden(Ga);
|
||||
|
||||
%% Extract coefficients (from z^0 to z^n)
|
||||
num = coeffs(N, z);
|
||||
den = coeffs(D, z);
|
||||
```
|
||||
|
||||
```text
|
||||
org_babel_eoe
|
||||
```
|
||||
|
||||
```text
|
||||
den = (Ts^2*wn^2 - 4*Ts*wn*xi + 4) + (2*Ts^2*wn^2 - 8) * z + (Ts^2*wn^2 + 4*Ts*wn*xi + 4) * z^2
|
||||
```
|
||||
|
||||
|
||||
### Second Order Low Pass Filter {#second-order-low-pass-filter}
|
||||
|
||||
Let's consider a second order low pass filter:
|
||||
|
||||
\begin{equation}
|
||||
G(s) = \frac{1}{1 + 2 \xi \frac{s}{\omega\_n} + \frac{s^2}{\omega\_n^2}}
|
||||
\end{equation}
|
||||
|
||||
with:
|
||||
|
||||
- \\(\omega\_n\\): Cut off frequency
|
||||
- \\(\xi\\): damping ratio
|
||||
|
||||
First the symbolic variables are declared (`Ts` is the sampling time, `s` the Laplace variable and `z` the "z-transform" variable).
|
||||
|
||||
```matlab
|
||||
%% Declaration of the symbolic variables
|
||||
syms wn xi Ts s z
|
||||
```
|
||||
|
||||
Then the bi-linear transformation is performed to go from continuous to discrete:
|
||||
|
||||
```matlab
|
||||
%% Bilinear Transform
|
||||
s = 2/Ts*(z - 1)/(z + 1);
|
||||
```
|
||||
|
||||
The symbolic formula of the notch filter is defined:
|
||||
|
||||
```matlab
|
||||
%% Second Order Low Pass Filter - Symbolic representation
|
||||
Ga = 1/(1 + 2*xi*s/wn + s^2/wn^2);
|
||||
```
|
||||
|
||||
Finally, the numerator and denominator coefficients can be extracted:
|
||||
|
||||
```matlab
|
||||
%% Get numerator and denominator
|
||||
[N,D] = numden(Ga);
|
||||
|
||||
%% Extract coefficients (from z^0 to z^n)
|
||||
num = coeffs(N, z);
|
||||
den = coeffs(D, z);
|
||||
```
|
||||
|
||||
```text
|
||||
gain = 1/(Ts^2*wn^2 + 4*Ts*wn*xi + 4)
|
||||
```
|
||||
|
||||
```text
|
||||
num = (Ts^2*wn^2) + (2*Ts^2*wn^2) * z^-1 + (Ts^2*wn^2) * z^-2
|
||||
```
|
||||
|
||||
```text
|
||||
den = 1 + (2*Ts^2*wn^2 - 8) * z^-1 + (Ts^2*wn^2 - 4*Ts*wn*xi + 4) * z^-2
|
||||
```
|
||||
|
||||
And the transfer function is equal to `gain * num/den`.
|
||||
|
||||
|
||||
### Second Order Low Pass Filter {#second-order-low-pass-filter}
|
||||
|
||||
Let's consider a second order low pass filter:
|
||||
|
||||
\begin{equation}
|
||||
G(s) = \frac{g}{ms^2 + cs + k}
|
||||
\end{equation}
|
||||
|
||||
First the symbolic variables are declared (`Ts` is the sampling time, `s` the Laplace variable and `z` the "z-transform" variable).
|
||||
|
||||
```matlab
|
||||
%% Declaration of the symbolic variables
|
||||
syms Ts g m c k s z
|
||||
```
|
||||
|
||||
Then the bi-linear transformation is performed to go from continuous to discrete:
|
||||
|
||||
```matlab
|
||||
%% Bilinear Transform
|
||||
s = 2/Ts*(z - 1)/(z + 1);
|
||||
```
|
||||
|
||||
The symbolic formula of the notch filter is defined:
|
||||
|
||||
```matlab
|
||||
%% Second Order Low Pass Filter - Symbolic representation
|
||||
Ga = g/(m*s^2 + c*s + k)
|
||||
```
|
||||
|
||||
Finally, the numerator and denominator coefficients can be extracted:
|
||||
|
||||
```matlab
|
||||
%% Get numerator and denominator
|
||||
[N,D] = numden(Ga);
|
||||
|
||||
%% Extract coefficients (from z^0 to z^n)
|
||||
num = coeffs(N, z);
|
||||
den = coeffs(D, z);
|
||||
```
|
||||
|
||||
```text
|
||||
gain = 1/(4*m + 2*Ts*c + Ts^2*k)
|
||||
```
|
||||
|
||||
```text
|
||||
num = (Ts^2*g) + (2*Ts^2*g) * z^-1 + (Ts^2*g) * z^-2
|
||||
```
|
||||
|
||||
```text
|
||||
den = 1 + (2*Ts^2*k - 8*m) * z^-1 + (4*m - 2*Ts*c + Ts^2*k) * z^-2
|
||||
```
|
||||
|
||||
And the transfer function is equal to `gain * num/den`.
|
||||
|
||||
|
||||
### Second Order High Pass Filter {#second-order-high-pass-filter}
|
||||
|
||||
Let's consider a second order low pass filter:
|
||||
|
||||
\begin{equation}
|
||||
G(s) = \frac{1}{1 + 2 \xi \frac{s}{\omega\_n} + \frac{s^2}{\omega\_n^2}}
|
||||
\end{equation}
|
||||
|
||||
with:
|
||||
|
||||
- \\(\omega\_n\\): Cut off frequency
|
||||
- \\(\xi\\): damping ratio
|
||||
|
||||
First the symbolic variables are declared (`Ts` is the sampling time, `s` the Laplace variable and `z` the "z-transform" variable).
|
||||
|
||||
```matlab
|
||||
%% Declaration of the symbolic variables
|
||||
syms wn xi Ts s z
|
||||
```
|
||||
|
||||
Then the bi-linear transformation is performed to go from continuous to discrete:
|
||||
|
||||
```matlab
|
||||
%% Bilinear Transform
|
||||
s = 2/Ts*(z - 1)/(z + 1);
|
||||
```
|
||||
|
||||
The symbolic formula of the notch filter is defined:
|
||||
|
||||
```matlab
|
||||
%% Second Order Low Pass Filter - Symbolic representation
|
||||
Ga = (s^2/wn^2)/(1 + 2*xi*s/wn + s^2/wn^2);
|
||||
```
|
||||
|
||||
Finally, the numerator and denominator coefficients can be extracted:
|
||||
|
||||
```matlab
|
||||
%% Get numerator and denominator
|
||||
[N,D] = numden(Ga);
|
||||
|
||||
%% Extract coefficients (from z^0 to z^n)
|
||||
num = coeffs(N, z);
|
||||
den = coeffs(D, z);
|
||||
```
|
||||
|
||||
```text
|
||||
gain = 1/(Ts^2*wn^2 + 4*Ts*wn*xi + 4)
|
||||
```
|
||||
|
||||
```text
|
||||
num = (4) + (-8) * z^-1 + (4) * z^-2
|
||||
```
|
||||
|
||||
```text
|
||||
den = 1 + (2*Ts^2*wn^2 - 8) * z^-1 + (Ts^2*wn^2 - 4*Ts*wn*xi + 4) * z^-2
|
||||
```
|
||||
|
||||
And the transfer function is equal to `gain * num/den`.
|
||||
|
||||
|
||||
## Variable Discrete Filter {#variable-discrete-filter}
|
||||
|
||||
Once the analytical formula of a discrete transfer function is obtained, it is possible to vary some parameters in real time.
|
||||
|
||||
This is easily done in Simulink (see [Figure 1](#figure--fig:variable-controller-simulink)) where a `Discrete Varying Transfer Function` block is used.
|
||||
The coefficients are simply computed with a Matlab function.
|
||||
|
||||
<a id="figure--fig:variable-controller-simulink"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/variable_controller_simulink.png" caption="<span class='figure-number'>Figure 1: </span>Variable Discrete Filter in Simulink" >}}
|
||||
|
||||
|
||||
## Typical Transfer functions {#typical-transfer-functions}
|
||||
|
||||
|
||||
### Delay {#delay}
|
||||
|
||||
|
||||
### First Order Low Pass {#first-order-low-pass}
|
||||
|
||||
|
||||
### First Order High Pass {#first-order-high-pass}
|
||||
|
||||
|
||||
### Integrator {#integrator}
|
||||
|
||||
|
||||
### Derivator {#derivator}
|
||||
|
||||
|
||||
### Second Order Low Pass {#second-order-low-pass}
|
||||
|
||||
|
||||
### PID {#pid}
|
||||
|
||||
|
||||
### Notch {#notch}
|
||||
|
||||
|
||||
### Moving Average {#moving-average}
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,33 @@
|
||||
+++
|
||||
title = "Dynamic Error Budgeting"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
A good introduction to Dynamic Error Budgeting is given in (<a href="#citeproc_bib_item_1">Monkhorst 2004</a>).
|
||||
|
||||
|
||||
## Step by Step process {#step-by-step-process}
|
||||
|
||||
Taken from (<a href="#citeproc_bib_item_1">Monkhorst 2004</a>): ([Notes]({{< relref "monkhorst04_dynam_error_budget.md" >}}))
|
||||
|
||||
> Step by step, the process is as follows:
|
||||
>
|
||||
> - design a concept system
|
||||
> - model the concept system, such that the closed loop transfer functions can be determined
|
||||
> - Identify all significant disturbances.
|
||||
> Model them with their _Power Spectral Density_
|
||||
> - Define the performance outputs of the system and simulate the output error.
|
||||
> Using the theory of _propagation_, the contribution of each disturbance to the output error can be analyzed and the critical disturbance can be pointed out
|
||||
> - Make changes to the system that are expected to improve the performance level, and simulate the output error again.
|
||||
> Iterate until the error budget is meet.
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_1"></a>Monkhorst, W. 2004. “Dynamic Error Budgeting, a Design Approach.” Delft University.</div>
|
||||
</div>
|
||||
@@ -0,0 +1,110 @@
|
||||
+++
|
||||
title = "Eddy Current Damping"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
: [Passive Damping]({{< relref "passive_damping.md" >}})
|
||||
|
||||
<https://courses.lumenlearning.com/suny-physics/chapter/23-4-eddy-currents-and-magnetic-damping/>
|
||||
|
||||
|
||||
## Vacuum compatible magnets {#vacuum-compatible-magnets}
|
||||
|
||||
<https://www.mceproducts.com/articles/magnets-in-vacuum-applications>
|
||||
|
||||
|
||||
## Estimate the damping {#estimate-the-damping}
|
||||
|
||||
|
||||
### Formulas {#formulas}
|
||||
|
||||
From (<a href="#citeproc_bib_item_1">Zuo 2004</a>):
|
||||
The empirical formula for damping coefficient (Ns/m) of an eddy current damper is:
|
||||
|
||||
\begin{equation} \label{eq:damping\_formula}
|
||||
C = C\_0 B^2 t A \sigma
|
||||
\end{equation}
|
||||
|
||||
with:
|
||||
|
||||
- \\(B\\) is the magnetic flux density in [T] or in [Vs/m2]
|
||||
- \\(t\\) is the thickness of the conductor plate in [m]
|
||||
- \\(A\\) is the area of the conductor intersected by the magnetic field in [m2]
|
||||
- \\(\sigma\\) is the electrical conductivity of the conductor material [S/m]
|
||||
- \\(C\_0\\) is a dimensionless coefficient to account for the shapes and sizes of the conductor and magnetic field
|
||||
|
||||
\\(C\_0 = 1\\) corresponds to a conductor with conductivity \\(\sigma\\) inside a uniform magnetic field and conductivity infinite outside this field.
|
||||
A typical value of \\(C\_0\\) is about 0.25-0.4 for a conductor plate with area 2 to 5 times that of the magnetic field.
|
||||
|
||||
From \ref{eq:damping\_formula}, we see that the damping coefficient is proportional to:
|
||||
|
||||
- the square of the magnetic flux density \\(B\\). Therefore it is very important to have large magnetic field strengh
|
||||
- the thickness \\(t\\) of the conductor. However due to **skin depth effect**, the benefit of increasing the thickness is limited.
|
||||
The apparent conductivity \\(\sigma\_e\\) is:
|
||||
|
||||
\begin{equation}
|
||||
\sigma\_e = \frac{2\delta\_s}{t}(1 - e^{-\frac{t}{2\delta\_s}})\sigma
|
||||
\end{equation}
|
||||
|
||||
where \\(\delta\_s\\) is the skin depth in [m] of the conductor with permeability \\(\mu\\) in [H/m] at frequency \\(f\\) in [Hz]:
|
||||
|
||||
\begin{equation}
|
||||
\delta\_s = \sqrt{\frac{2}{2 \pi f \cdot \mu \cdot \sigma}}
|
||||
\end{equation}
|
||||
|
||||
An eddy current damper is developed in (<a href="#citeproc_bib_item_1">Zuo 2004</a>).
|
||||
The magnets have alternating poles to optimize the eddy current damping (stronger varying magnetic field).
|
||||
See [Figure 1](#figure--fig:zuo04-eddy-current-magnets) and [Figure 2](#figure--fig:zuo04-eddy-current-setup).
|
||||
|
||||
<a id="figure--fig:zuo04-eddy-current-magnets"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/zuo04_eddy_current_magnets.png" caption="<span class='figure-number'>Figure 1: </span>(left) Magnetic field and conductor plates assemblies, (right) magnet arrays" >}}
|
||||
|
||||
<a id="figure--fig:zuo04-eddy-current-setup"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/zuo04_eddy_current_setup.png" caption="<span class='figure-number'>Figure 2: </span>Single DoF system damped by eddy current damper" >}}
|
||||
|
||||
|
||||
### Numerical Simulation {#numerical-simulation}
|
||||
|
||||
It is possible to estimate that with FEM simulation: <https://www.youtube.com/watch?v=_1pgyj4lD7Q>
|
||||
|
||||
An approximation is done bellow.
|
||||
|
||||
```matlab
|
||||
B = 1.0; % Magnetic Flux Density [T]
|
||||
t = 5e-3; % Thickness [m]
|
||||
A = 50e-3*50e-3; % Area [m2]
|
||||
sigma = 6e7; % Copper conductivity [S/m]
|
||||
C0 = 0.5; % [-]
|
||||
```
|
||||
|
||||
```matlab
|
||||
C = C0*B^2*t*A*sigma; % Damping in [N/(m/s)]
|
||||
```
|
||||
|
||||
```text
|
||||
C = 375 [N/(m/s)]
|
||||
```
|
||||
|
||||
```matlab
|
||||
m = 10; % [kg]
|
||||
k = m*(2*pi*10)^2; % [N/m]
|
||||
```
|
||||
|
||||
```matlab
|
||||
xi = 1/2*C/sqrt(k*m);
|
||||
```
|
||||
|
||||
```text
|
||||
xi = 0.298
|
||||
```
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_1"></a>Zuo, Lei. 2004. “Element and System Design for Active and Passive Vibration Isolation.” Massachusetts Institute of Technology.</div>
|
||||
</div>
|
||||
@@ -0,0 +1,27 @@
|
||||
+++
|
||||
title = "Eddy Current Sensors"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
category = "equipment"
|
||||
+++
|
||||
|
||||
Tags
|
||||
: [Position Sensors]({{< relref "position_sensors.md" >}})
|
||||
|
||||
|
||||
## Manufacturers {#manufacturers}
|
||||
|
||||
| Manufacturers | Country |
|
||||
|---------------------------------------------------------------------------------------------------|-------------|
|
||||
| [Micro-Epsilon](https://www.micro-epsilon.com/displacement-position-sensors/eddy-current-sensor/) | Germany |
|
||||
| [Lion Precision](https://www.lionprecision.com/products/eddy-current-sensors) | USA |
|
||||
| [Cedrat](https://www.cedrat-technologies.com/en/products/sensors/eddy-current-sensors.html) | France |
|
||||
| [Kaman](https://www.kamansensors.com/product/smt-9700/) | USA |
|
||||
| [Keyence](https://www.keyence.com/ss/products/measure/measurement_library/type/inductive/) | USA |
|
||||
| [Althen](https://www.althensensors.com/sensors/linear-position-sensors/eddy-current-sensors/) | Netherlands |
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,24 @@
|
||||
+++
|
||||
title = "Electrical Impedance"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
|
||||
## Impedance Analyzer {#impedance-analyzer}
|
||||
|
||||
- <https://www.zhinst.com/europe/en/instruments/product-finder/type/impedance_analyzers>
|
||||
|
||||
|
||||
## LCR Meter {#lcr-meter}
|
||||
|
||||
- <https://www.thinksrs.com/products/sr715720.html>
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,49 @@
|
||||
+++
|
||||
title = "Electromagnetism"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
|
||||
## Maxwell equations for magnetics {#maxwell-equations-for-magnetics}
|
||||
|
||||
|
||||
### Gauss law {#gauss-law}
|
||||
|
||||
"Magnetic fieldlines are closed loop."
|
||||
|
||||
\begin{equation}
|
||||
\oiint\_S (\bm{B} \cdot \hat{\bm{n}}) dS = 0
|
||||
\end{equation}
|
||||
|
||||
|
||||
### Faraday's law {#faraday-s-law}
|
||||
|
||||
A changing magnetic field causes an electric field over a wire
|
||||
|
||||
\begin{equation}
|
||||
\oint\_L \bm{E} \cdot d\bm{l} = -\frac{d}{dt} \iint\_S(\bm{B} \cdot \bm{n}) dS
|
||||
\end{equation}
|
||||
|
||||
The line-integral of the electrical field over a closed loop L equals the change of the field through the open surface S bounded by the loop L.
|
||||
This is a voltage source (EMF), where the current is driven in the direction of the electric field.
|
||||
|
||||
|
||||
### Ampère's law {#ampère-s-law}
|
||||
|
||||
"Current through a wire gives a magnetic field".
|
||||
|
||||
\begin{equation}
|
||||
\oint\_L \bm{B} \cdot dl = \mu\_0 I
|
||||
\end{equation}
|
||||
|
||||
The line integral of the magnetic field over a closed loop L is proportional to the current through the surface S enclosed by the loop L.
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,55 @@
|
||||
+++
|
||||
title = "Electronic Active Filters"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
: [Operational Amplifiers]({{< relref "operational_amplifiers.md" >}})
|
||||
|
||||
|
||||
## Second Order Low Pass Filter {#second-order-low-pass-filter}
|
||||
|
||||
\begin{equation}
|
||||
\frac{V\_o}{V\_i}(s) = \frac{1}{R^2 C\_1 C\_2 s^2 + 2 R C\_2 s + 1}
|
||||
\end{equation}
|
||||
|
||||
\begin{equation}
|
||||
\frac{V\_o}{V\_i}(s) = \frac{1}{\frac{s^2}{\omega\_0^2} + 2 \xi \frac{s}{\omega\_0} + 1}
|
||||
\end{equation}
|
||||
|
||||
With:
|
||||
|
||||
- \\(\omega\_0 = \frac{1}{R\sqrt{C\_1 C\_2}}\\)
|
||||
- \\(\xi = \frac{C\_2}{C\_1}\\)
|
||||
|
||||
The input impedance is \\(V\_i/i\_i\\).
|
||||
|
||||
<a id="figure--fig:analog-act-filt-second-order-lpf"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/analog_act_filt_second_order_lpf.png" caption="<span class='figure-number'>Figure 1: </span>Second Order Low Pass Filter" >}}
|
||||
|
||||
|
||||
## Second Order High Pass Filter {#second-order-high-pass-filter}
|
||||
|
||||
Same as [Figure 1](#figure--fig:analog-act-filt-second-order-lpf) but by exchanging R1 with C1 and R2 with C2
|
||||
|
||||
\begin{equation}
|
||||
\frac{V\_o}{V\_i}(s) = \frac{R^2 C\_1 C\_2 s^2}{R^2 C\_1 C\_2 s^2 + 2 R C\_2 s + 1}
|
||||
\end{equation}
|
||||
|
||||
With:
|
||||
|
||||
- \\(\omega\_0 = \frac{1}{R\sqrt{C\_1 C\_2}}\\)
|
||||
- \\(\xi = \frac{C\_2}{C\_1}\\)
|
||||
|
||||
|
||||
## PID controller {#pid-controller}
|
||||
|
||||
See [The design of high performance mechatronics - third revised edition]({{< relref "schmidt20_desig_high_perfor_mechat_third_revis_edition.md" >}}) (Chapter 6.2.6).
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,77 @@
|
||||
+++
|
||||
title = "Electronic Noise"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
: [Electronics]({{< relref "electronics.md" >}}), [Signal to Noise Ratio]({{< relref "signal_to_noise_ratio.md" >}})
|
||||
|
||||
|
||||
## Thermal (Johnson) Noise {#thermal--johnson--noise}
|
||||
|
||||
Thermal noise is generated by the thermal agitation of the electrons inside the electrical conductor.
|
||||
Its Power Spectral Density is equal to:
|
||||
|
||||
\begin{equation}
|
||||
S\_T \approx 4 k T \text{Re}(Z(f)) \quad [V^2/Hz]
|
||||
\end{equation}
|
||||
|
||||
with:
|
||||
with \\(k = 1.38 \cdot 10^{-23} \\,[J/K]\\) the Boltzmann's constant, \\(T\\) the temperature [K] and \\(Z(f)\\) the frequency dependent impedance of the system.
|
||||
|
||||
This noise can be modeled as a voltage source in series with the system impedance.
|
||||
|
||||
| Resistance | PSD \\([V^2 / Hz]\\) | ASD \\([V/\sqrt{Hz}]\\) | RMS (1kHz) | RMS (10kHz) |
|
||||
|-----------------|--------------------------|--------------------------|------------|-------------|
|
||||
| \\(1 \Omega\\) | \\(1.6 \cdot 10^{-20}\\) | \\(1.2 \cdot 10^{-10}\\) | 4nV | 130nV |
|
||||
| \\(1 k\Omega\\) | \\(1.6 \cdot 10^{-17}\\) | \\(4 \cdot 10^{-9}\\) | 130nV | 4uV |
|
||||
| \\(1 M\Omega\\) | \\(1.6 \cdot 10^{-14}\\) | \\(1.2 \cdot 10^{-7}\\) | 4uV | 130uV |
|
||||
|
||||
|
||||
## Shot Noise {#shot-noise}
|
||||
|
||||
Seen with junctions in a transistor.
|
||||
It has a white spectral density:
|
||||
|
||||
\begin{equation}
|
||||
S\_S = 2 q\_e i\_{dc} \ [A^2/Hz]
|
||||
\end{equation}
|
||||
|
||||
with \\(q\_e\\) the electronic charge (\\(1.6 \cdot 10^{-19}\\, [C]\\)), \\(i\_{dc}\\) the average current [A].
|
||||
|
||||
<div class="exampl">
|
||||
|
||||
A current of 1 A will introduce noise with a STD of \\(10 \cdot 10^{-9}\\,[A]\\) from zero up to one kHz.
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
## Excess Noise (or \\(1/f\\) noise) {#excess-noise--or-1-f-noise}
|
||||
|
||||
It results from fluctuating conductivity due to imperfect contact between two materials.
|
||||
The PSD of excess noise increases when the frequency decreases:
|
||||
\\[ S\_E = \frac{K\_f}{f^\alpha}\ [V^2/Hz] \\]
|
||||
where \\(K\_f\\) is dependent on the average voltage drop over the resistor and the index \\(\alpha\\) is usually between 0.8 and 1.4, and often set to unity for approximate calculation.
|
||||
|
||||
|
||||
## Noise of Amplifiers {#noise-of-amplifiers}
|
||||
|
||||
The noise of amplifiers can be modelled as shown in [Figure 1](#figure--fig:electronic-amplifier-noise).
|
||||
|
||||
<a id="figure--fig:electronic-amplifier-noise"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/electronic_amplifier_noise.png" caption="<span class='figure-number'>Figure 1: </span>Amplifier noise model" >}}
|
||||
|
||||
The identification of this noise is a two steps process:
|
||||
|
||||
1. The amplifier input is short-circuited such that only \\(V^2(f)\\) has an impact on the output.
|
||||
The output noise is measured and \\(V^2\\) in \\([V^2/Hz]\\) is identified
|
||||
2. The amplifier input is open-circuited such that only \\(I^2(f)\\) has an impact on the output.
|
||||
The output noise is measured and \\(I^2(f)\\) in \\([A^2/Hz]\\) is identified.
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,112 @@
|
||||
+++
|
||||
title = "Electronic Passive Filters"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
|
||||
## First Order Low Pass Filter {#first-order-low-pass-filter}
|
||||
|
||||
<a id="figure--fig:analog-filt-first-order-lpf"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/analog_filt_first_order_lpf.png" caption="<span class='figure-number'>Figure 1: </span>First Order Low Pass Filter using an RC circuit" >}}
|
||||
|
||||
\begin{equation}
|
||||
\boxed{\frac{V\_o}{V\_i}(s) = \frac{1}{1 + \frac{s}{\omega\_0}}, \quad \omega\_0 = \frac{1}{RC}}
|
||||
\end{equation}
|
||||
|
||||
\begin{equation}
|
||||
Z\_f(s) = \frac{V\_i}{i\_i}(s) = \frac{1 + RC \cdot s}{C \cdot s}
|
||||
\end{equation}
|
||||
|
||||
```matlab
|
||||
%% First Order Low Pass Filter
|
||||
R = 1e3; % [Ohm]
|
||||
C = 1e-6; % [F]
|
||||
```
|
||||
|
||||
```matlab
|
||||
G = 1/(1 + R*C*s); % Filter Transfer Function
|
||||
Z = (1 + R*C*s)/(C*s); % Filter Impedance
|
||||
```
|
||||
|
||||
<a id="figure--fig:analog-filt-first-order-lpf-characteristics"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/analog_filt_first_order_lpf_characteristics.png" caption="<span class='figure-number'>Figure 2: </span>First Order Low Pass Filter - Filter transfer function and filter impedance" >}}
|
||||
|
||||
|
||||
## First Order High Pass Filter {#first-order-high-pass-filter}
|
||||
|
||||
<a id="figure--fig:analog-filt-first-order-hpf"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/analog_filt_first_order_hpf.png" caption="<span class='figure-number'>Figure 3: </span>First Order High Pass Filter using an RC circuit" >}}
|
||||
|
||||
\begin{equation}
|
||||
\boxed{\frac{V\_o}{V\_i}(s) = \frac{\frac{s}{\omega\_0}}{1 + \frac{s}{\omega\_0}}, \quad \omega\_0 = \frac{1}{RC}}
|
||||
\end{equation}
|
||||
|
||||
\begin{equation}
|
||||
Z\_f(s) = \frac{V\_i}{i\_i}(s) = \frac{1 + RC \cdot s}{C \cdot s}
|
||||
\end{equation}
|
||||
|
||||
```matlab
|
||||
%% First Order High Pass Filter
|
||||
R = 1e3; % [Ohm]
|
||||
C = 1e-6; % [F]
|
||||
```
|
||||
|
||||
```matlab
|
||||
G = R*C*s/(1 + R*C*s); % Filter Transfer Function
|
||||
Z = (1 + R*C*s)/(C*s); % Filter Impedance
|
||||
```
|
||||
|
||||
<a id="figure--fig:analog-filt-first-order-hpf-characteristics"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/analog_filt_first_order_hpf_characteristics.png" caption="<span class='figure-number'>Figure 4: </span>First Order High Pass Filter - Filter transfer function and filter impedance" >}}
|
||||
|
||||
|
||||
## Second Order Low Pass Filter {#second-order-low-pass-filter}
|
||||
|
||||
<a id="figure--fig:analog-filt-second-order-lpf"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/analog_filt_second_order_lpf.png" caption="<span class='figure-number'>Figure 5: </span>Second Order Low Pass Filter using an RLC circuit" >}}
|
||||
|
||||
\begin{equation}
|
||||
\boxed{\frac{V\_o}{V\_i}(s) = \frac{1}{1 + 2 \xi \frac{s}{\omega\_0} + \frac{s^2}{\omega\_0^2}}, \quad \omega\_0 = \frac{1}{\sqrt{LC}},\quad \xi = \frac{1}{2R\sqrt{LC}}}
|
||||
\end{equation}
|
||||
|
||||
\begin{equation}
|
||||
Z\_f(s) = \frac{V\_i}{i\_i}(s) = L \cdot s + \frac{R}{1 + RC \cdot s}
|
||||
\end{equation}
|
||||
|
||||
```matlab
|
||||
%% Second Order Low Pass Filter
|
||||
R = 1e2; % [Ohm]
|
||||
C = 1e-5; % [F]
|
||||
L = 1e-2; % [H]
|
||||
```
|
||||
|
||||
```matlab
|
||||
G = 1/(1 + L/R*s + C*L*s^2); % Filter Transfer Function
|
||||
Z = L*s + (R)/(1 + R*C*s); % Filter Impedance
|
||||
```
|
||||
|
||||
<a id="figure--fig:analog-filt-second-order-lpf-characteristics"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/analog_filt_second_order_lpf_characteristics.png" caption="<span class='figure-number'>Figure 6: </span>Second Order Low Pass Filter - Filter transfer function and filter impedance" >}}
|
||||
|
||||
|
||||
## Second Order High Pass Filter {#second-order-high-pass-filter}
|
||||
|
||||
<a id="figure--fig:analog-filt-second-order-hpf"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/analog_filt_second_order_hpf.png" caption="<span class='figure-number'>Figure 7: </span>Second Order High Pass Filter using an RLC circuit" >}}
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,14 @@
|
||||
+++
|
||||
title = "Electronics"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,48 @@
|
||||
+++
|
||||
title = "Encoders"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
category = "equipment"
|
||||
+++
|
||||
|
||||
Tags
|
||||
: [Position Sensors]({{< relref "position_sensors.md" >}})
|
||||
|
||||
There are two main types of encoders: optical encoders, and magnetic encoders.
|
||||
|
||||
|
||||
## Manufacturers {#manufacturers}
|
||||
|
||||
| Manufacturers | Country |
|
||||
|--------------------------------------------------------------------------|-------------|
|
||||
| [Heidenhain](https://www.heidenhain.com/en_US/products/linear-encoders/) | Germany |
|
||||
| [Renishaw](https://www.renishaw.com/en/browse-encoder-range--6440) | UK |
|
||||
| [Celera Motion](https://www.celeramotion.com/microe/) | USA |
|
||||
| [Magnescale](https://www.magnescale.com/en/) | Japanese |
|
||||
| [SmarAct](https://www.smaract.com/en/metrology/metirio-encoder) | Germany |
|
||||
| [Posic](https://www.posic.com/EN/) | Switzerland |
|
||||
| [RLS](https://www.rls.si/eng/products/rotary-magnetic-encoders) | Slovenia |
|
||||
| [AMO](https://www.amo-gmbh.com/en/) | Australia |
|
||||
| [NumerikJena](https://www.numerikjena.de/en/) | Germany |
|
||||
| [RSF Elektronik](https://www.rsf.at/en/) | Austria |
|
||||
| [Flux](https://flux.gmbh/products/gmi-rotary-encoder/) | Austria |
|
||||
| [Lika](https://www.lika.it/eng/) | Italy |
|
||||
|
||||
|
||||
## Incremental vs Absolute {#incremental-vs-absolute}
|
||||
|
||||
Incremental:
|
||||
|
||||
- Less delay
|
||||
- Limited maximum velocity (slew rate)
|
||||
|
||||
Absolute:
|
||||
|
||||
- No problem of "missed" steps
|
||||
- May add some delay
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,39 @@
|
||||
+++
|
||||
title = "EtherCAT"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
|
||||
## Manufacturers {#manufacturers}
|
||||
|
||||
General purpose / PLC:
|
||||
|
||||
| Manufacturer |
|
||||
|----------------------------------------------------------------------------------------------|
|
||||
| [Bechoff](https://www.beckhoff.com/fr-fr/products/i-o/ethercat-terminals/) |
|
||||
| [Wago](https://www.wago.com/global/i-o-systems/fieldbus-coupler-ethercat/p/750-354) |
|
||||
| [Rexroth](https://apps.boschrexroth.com/microsites/ctrlx-automation/en/portfolio/ctrlx-i-o/) |
|
||||
|
||||
Acquisition systems:
|
||||
|
||||
| Manufacturer |
|
||||
|----------------------------------------------------------------------------|
|
||||
| [National Instrument](https://www.ni.com/fr-fr/support/model.ni-9145.html) |
|
||||
| [Dewesoft](https://dewesoft.com/products/daq-systems) |
|
||||
|
||||
|
||||
## Cycle Time {#cycle-time}
|
||||
|
||||
See (<a href="#citeproc_bib_item_1">Robert et al. 2012</a>).
|
||||
There is a nice [online calculator](https://developer.acontis.com/ethercat-cycle-time-calculator.html).
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_1"></a>Robert, Jérémy, Jean-Philippe Georges, Eric Rondeau, and Thierry Divoux. 2012. “Minimum Cycle Time Analysis of Ethernet-Based Real-Time protocols.” <i>International Journal of Computers, Communications and Control</i> 7 (4). Agora University of Oradea: 743–57. <a href="https://hal.archives-ouvertes.fr/hal-00714560">https://hal.archives-ouvertes.fr/hal-00714560</a>.</div>
|
||||
</div>
|
||||
@@ -0,0 +1,194 @@
|
||||
+++
|
||||
title = "Extremum Seeking Control"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
: [Nonlinear Control]({{< relref "nonlinear_control.md" >}})
|
||||
|
||||
The idea behind "Extremum Seeking Control" is to use a controlled signal \\(u\\) to explore the relation \\(y(u)\\), estimate its gradient and find its minimum or maximum.
|
||||
This relation should be convex or concave for the architecture to work properly.
|
||||
|
||||
See (<a href="#citeproc_bib_item_1">Tan et al. 2010</a>) for a good overview.
|
||||
|
||||
|
||||
## Control Architecture {#control-architecture}
|
||||
|
||||
There are many extremum seeking control architectures.
|
||||
One of the simplest one is shown in [Figure 1](#figure--fig:extremum-seeking-control-architecture).
|
||||
|
||||
```latex
|
||||
\begin{tikzpicture}[
|
||||
triangle/.style = {regular polygon, regular polygon sides=3},
|
||||
right/.style = {shape border rotate=-90},
|
||||
left/.style = {shape border rotate=90},
|
||||
top/.style = {shape border rotate=0}
|
||||
bottom/.style = {shape border rotate=180}
|
||||
]
|
||||
% Extremum Seeking
|
||||
\node[draw, minimum width=10cm,minimum height=4.2cm, dashed, label=Extremum Seeking Control] (extremum) at (0, 0) {};
|
||||
\begin{scope}[shift={(-2.3, 0.7)}]
|
||||
\node[draw, label=Adapt] (Adapt) at (0, 0) {$\displaystyle\frac{1}{A_p}\frac{K_I}{s}$};
|
||||
\node[draw, label=LPF] (LPF) at (2, 0) {$\displaystyle\frac{1}{s/\omega_{L} + 1}$};
|
||||
\node[addb={\times}{}{}{}{}] (multiply) at (4, 0) {};
|
||||
\node[draw, label=HPF] (HPF) at (6, 0) {$\displaystyle\frac{s/\omega_{H}}{s/\omega_{H} + 1}$};
|
||||
\node[addb={+}{}{}{}{}] (add) at (-2, 0) {};
|
||||
\node[draw, triangle, left, inner sep=0pt] (gain_a) at (1, -2) {$A_p$};
|
||||
|
||||
\node[] (sinus) at (4, -2) {$\sin(\omega_p t)$};
|
||||
|
||||
\draw[<-] (add) -- node[above]{$\overline{u}$} (Adapt);
|
||||
\draw[<-] (Adapt) -- node[above left]{} (LPF);
|
||||
\draw[<-] (LPF) -- node[above left]{} (multiply);
|
||||
\draw[<-] (multiply) -- node[above left]{} (HPF);
|
||||
\draw[<-] (multiply) -- node[above right]{} (sinus);
|
||||
\draw[<-] (gain_a) -- node[above left]{} (sinus);
|
||||
\draw[<-] (add) -- node[above right]{$du$} (-2, -2) -- (gain_a);
|
||||
\end{scope}
|
||||
|
||||
% Système
|
||||
\node[draw, fill=black!20!white, minimum width=10cm,minimum height=3cm, label=System] (system) at (0, 4.5) {};
|
||||
\begin{scope}[shift={(-2.5, 0.6)}]
|
||||
% AC function of C_phi
|
||||
\draw[domain=-1.5:1.5, shift={(2.5, 3)}] plot (2*\x, 0.8*\x*\x);
|
||||
% Axes of plot
|
||||
\draw[->] (-1, 2.8) -- (6, 2.8) node[above right]{$u$};
|
||||
\draw[->] (-0.9, 2.7) -- (-0.9, 5) node[below left]{$y$};
|
||||
\end{scope}
|
||||
|
||||
% Connections
|
||||
\draw[<-] (system.west) node[above left](command){$u$} -- ++(-0.7, 0) |- (add);
|
||||
\draw[->] (system.east) node[above right](measure){$y$} -- ++(0.7, 0) |- (HPF);
|
||||
\end{tikzpicture}
|
||||
```
|
||||
|
||||
<a id="figure--fig:extremum-seeking-control-architecture"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/extremum_seeking_control_architecture.png" caption="<span class='figure-number'>Figure 1: </span>Extremum seeking control algorithm" >}}
|
||||
|
||||
Its working principle is schematically shown in [Figure 2](#figure--fig:extremum-seeking-control-non-minimum) and [Figure 3](#figure--fig:extremum-seeking-control-minimum).
|
||||
|
||||
```latex
|
||||
\begin{tikzpicture}
|
||||
% AC function of phi0
|
||||
\draw[domain=-2:2] plot (\x, \x*\x);
|
||||
% Axes of plot
|
||||
\draw[->, >=latex] (-2.5 ,-0.5) -- (2.5, -0.5) node[below]{$u$};
|
||||
\draw[->, >=latex] (-2.4 ,-0.6) -- (-2.4, 4.5) node[left]{$y$};
|
||||
|
||||
% Perturbation Signal
|
||||
\draw[domain=-pi/2:pi/2, shift={(1, -1.5)}, rotate=90, samples=200] plot (\x,{0.5*sin(4*deg(\x))});
|
||||
% Legend of perturbation Signal
|
||||
\node[align=center] (pert_signal) at (-2, -1.8) {$\overline{u}$\\[-0.4em]+\\[-0.4em]$A_p\sin(\omega_p t)$};
|
||||
\draw[<-, >=latex, dashed] ($(pert_signal.east)+(1.0, 0)$) -- ++(-1.5, 0);
|
||||
|
||||
% Dashed lines to show limits of the signals
|
||||
\draw[dashed] (1.0, -3.2) -- ($(1.0, 1.0*1.0)$) -- ($(4.0, 1.0*1.0)$);
|
||||
\draw[dashed] (0.5, -3.2) -- ($(0.5, 0.5*0.5)$) -- ($(8.0, 0.5*0.5)$);
|
||||
\draw[dashed] (1.5, -3.2) -- ($(1.5, 1.5*1.5)$) -- ($(8.0, 1.5*1.5)$);
|
||||
|
||||
\begin{scope}[shift={(-0.5, 0)}]
|
||||
% Image of the perturbation signal on AC
|
||||
\draw[domain=-pi/2:pi/2, shift={(6, 0)}, samples=200] plot (\x,{(1+0.5*sin(4*deg(\x)))^2});
|
||||
\draw[->, >=latex] (4, 1) -- (8, 1) node[below]{$t$};
|
||||
\draw[->, >=latex] (4.1, 0.9) -- (4.1, 1.5*1.5+0.4) node[left]{$y$};
|
||||
|
||||
% Sinus omega_p
|
||||
\draw[domain=-pi/2:pi/2, shift={(6, 4)}, samples=200] plot (\x,{0.5*sin(4*deg(\x))});
|
||||
\draw[->, >=latex] (4, 4) -- (8, 4) node[below]{$t$};
|
||||
\draw[->, >=latex] (4.1, 3.75) -- (4.1, 4.5) node[left]{$\sin(\omega_p t)$};
|
||||
|
||||
% Product of the sinus and the AC Command
|
||||
\draw[domain=-pi/2:pi/2, shift={(6, -2.5)}, samples=200] plot (\x,{0.5*sin(4*deg(\x))*(1+0.5*sin(4*deg(\x)))^2});
|
||||
\draw[->, >=latex] (4,-2.5) -- (8, -2.5) node[below]{$t$};
|
||||
\filldraw[fill=gray!20] (4,-2.5) -- plot [domain=-pi/2:pi/2, shift={(6, -2.5)}, samples=200] (\x,{0.5*sin(4*deg(\x))*(1+0.5*sin(4*deg(\x)))^2}) -- cycle;
|
||||
\draw[->, >=latex] (4.1,-2.6) -- (4.1, -1.0) node[left]{$ $};
|
||||
|
||||
% Multiply and equal signs
|
||||
\node[addb={\times}{}{}{}{}] at (6, 3) {};
|
||||
\node[addb={=}{}{}{}{}] at (6, -0.6) {};
|
||||
\end{scope}
|
||||
\end{tikzpicture}
|
||||
```
|
||||
|
||||
<a id="figure--fig:extremum-seeking-control-non-minimum"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/extremum_seeking_control_non_minimum.png" caption="<span class='figure-number'>Figure 2: </span>\\(\bar{u}\\) is not at the minimum of the \\(y(u)\\) relation. In that case the integral of the product between the sinusoidal excitation and the measured \\(y\\) is the image of the local gradient of the \\(y(u)\\) relationship." >}}
|
||||
|
||||
```latex
|
||||
\begin{tikzpicture}
|
||||
% AC function of phi0
|
||||
\draw[domain=-2:2] plot (\x, \x*\x);
|
||||
% Axes of plot
|
||||
\draw[->, >=latex] (-2.5 ,-0.5) -- (2.5, -0.5) node[below]{$u$};
|
||||
\draw[->, >=latex] (-2.4 ,-0.6) -- (-2.4, 4.5) node[left]{$y$};
|
||||
|
||||
% Perturbation Signal
|
||||
\draw[domain=-pi/2:pi/2, shift={(0, -1.5)}, rotate=90, samples=200] plot (\x,{0.5*sin(4*deg(\x))});
|
||||
% Legend of perturbation Signal
|
||||
\node[] (pert_signal) at (-2, -1.0) {};
|
||||
|
||||
% Dashed lines to show limits of the signals
|
||||
\draw[dashed] (0.0, -3.2) -- ($(0, 0)$) -- ($(4.0, 0)$);
|
||||
\draw[dashed] (-0.5, -3.2) -- ($(-0.5, 0.5*0.5)$) -- ($(8.0, 0.5*0.5)$);
|
||||
\draw[dashed] (0.5, -3.2) -- ($(0.5, 0.5*0.5)$);
|
||||
|
||||
\begin{scope}[shift={(-0.5, 0)}]
|
||||
% Image of the perturbation signal on AC
|
||||
\draw[domain=-pi/2:pi/2, shift={(6, 0)}, samples=200] plot (\x,{(0.5*sin(4*deg(\x)))^2});
|
||||
\draw[->, >=latex] (4, 0) -- (8, 0) node[below]{$t$};
|
||||
\draw[->, >=latex] (4.1, -0.1) -- (4.1, 1.0) node[left]{$y$};
|
||||
|
||||
% Sinus omega_p
|
||||
\draw[domain=-pi/2:pi/2, shift={(6, 2.5)}, samples=200] plot (\x,{0.5*sin(4*deg(\x))});
|
||||
\draw[->, >=latex] (4, 2.5) -- (8, 2.5) node[below]{$t$};
|
||||
\draw[->, >=latex] (4.1, 2.25) -- (4.1, 3.0) node[above]{$\sin(\omega_p t)$};
|
||||
|
||||
% Product of the sinus and the AC Command
|
||||
\draw[domain=-pi/2:pi/2, shift={(6, -2.5)}, samples=200] plot (\x,{0.7*(sin(4*deg(\x)))^3});
|
||||
\draw[->, >=latex] (4,-2.5) -- (8, -2.5) node[below]{$t$};
|
||||
\filldraw[fill=gray!20] (4,-2.5) -- plot [domain=-pi/2:pi/2, shift={(6, -2.5)}, samples=200] (\x,{0.7*(sin(4*deg(\x))^3}) -- cycle;
|
||||
\draw[->, >=latex] (4.1,-2.6) -- (4.1, -1.0) node[left]{$ $};
|
||||
|
||||
% Multiply and equal signs
|
||||
\node[addb={\times}{}{}{}{}] at (6, 1.2) {};
|
||||
\node[addb={=}{}{}{}{}] at (6, -1.0) {};
|
||||
\end{scope}
|
||||
\end{tikzpicture}
|
||||
```
|
||||
|
||||
<a id="figure--fig:extremum-seeking-control-minimum"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/extremum_seeking_control_minimum.png" caption="<span class='figure-number'>Figure 3: </span>\\(\bar{u}\\) is at the minimum of the \\(y(u)\\) relation. In that case the integral of the product between the sinusoidal excitation and the measured \\(y\\) is null." >}}
|
||||
|
||||
|
||||
## Tuning of the Extremum Seeking Control {#tuning-of-the-extremum-seeking-control}
|
||||
|
||||
The \\(y(u)\\) relationship should be static compared to \\(\omega\_p\\) the frequency of the sinusoidal excitation.
|
||||
|
||||
When this architecture is to be applied the following two signals have to be properly chosen:
|
||||
|
||||
- what is the controlled signal \\(u\\)
|
||||
- what is the measured signal to be minimized \\(y\\)
|
||||
|
||||
Then, the following parameters should be tuned:
|
||||
|
||||
- \\(\omega\_p\\): the frequency of the perturbation, that should be small compared to the system dynamics
|
||||
- \\(A\_p\\): amplitude of the sinusoidal perturbation, that should be small compared to the allowed deviation from the minimum
|
||||
- \\(\omega\_H\\) and \\(\omega\_L\\): cut-off frequency of the high pass and low pass filters. As \\(\omega\_p\\) should be in the pass band of both filters, \\(\omega\_H\\) and \\(\omega\_L\\) should be chosen such that:
|
||||
\\[ \omega\_H \ll \omega\_p \quad \text{and} \quad \omega\_L \gg \omega\_p \\]
|
||||
- \\(K\_I\\): gain for the integrator that should be tuned such that the control loop is stable and converges to the minimum as fast as wanted.
|
||||
|
||||
There are three time scales present in this control algorithm:
|
||||
|
||||
- Fast time scale that corresponds to the system variations (\\(y(u)\\) relationship)
|
||||
- Medium time scale that corresponds to the perturbations on \\(u\\) (frequency \\(\omega\_p\\))
|
||||
- Slow time scale that corresponds to the variations of \\(\bar{u}\\)
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_1"></a>Tan, Y, WH Moase, C Manzie, D Nešić, and IMY Mareels. 2010. “Extremum Seeking from 1922 to 2010.” In <i>Control Conference (CCC), 2010 29th Chinese</i>, 14–26. IEEE.</div>
|
||||
</div>
|
||||
@@ -0,0 +1,233 @@
|
||||
+++
|
||||
title = "Feedforward Control"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
Depending on the physical system to be controlled, several feedforward controllers can be used:
|
||||
|
||||
- [Rigid body feedforward](#org-target--sec-rigid-body-feedforward)
|
||||
- [Fourth order feedforward](#org-target--sec-fourth-order-feedforward)
|
||||
- [Model based feedforward](#org-target--sec-model-based-feedforward)
|
||||
|
||||
|
||||
## Rigid Body Feedforward {#rigid-body-feedforward}
|
||||
|
||||
<span class="org-target" id="org-target--sec-rigid-body-feedforward"></span>
|
||||
|
||||
Second order trajectory planning: the acceleration and velocity can be bound to wanted values.
|
||||
|
||||
Such trajectory is shown in [Figure 1](#figure--fig:feedforward-second-order-trajectory).
|
||||
|
||||
<a id="figure--fig:feedforward-second-order-trajectory"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/feedforward_second_order_trajectory.png" caption="<span class='figure-number'>Figure 1: </span>Second order trajectory" >}}
|
||||
|
||||
Here, it is supposed that the driven system is a simple mass \\(m\\) with a damper \\(c\\).
|
||||
In that case, the feedforward force should be:
|
||||
|
||||
\begin{equation}
|
||||
F\_{ff} = m a + c v
|
||||
\end{equation}
|
||||
|
||||
|
||||
## Fourth Order Feedforward {#fourth-order-feedforward}
|
||||
|
||||
<span class="org-target" id="org-target--sec-fourth-order-feedforward"></span>
|
||||
|
||||
The main advantage of "fourth order feedforward" is that it takes into account the flexibility in the system (one resonance between the actuation point and the measurement point, see [Figure 2](#figure--fig:feedforward-double-mass-system)).
|
||||
This can lead to better results than second order trajectory planning as demonstrated [here](https://www.20sim.com/control-engineering/snap-feedforward/).
|
||||
|
||||
<a id="figure--fig:feedforward-double-mass-system"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/feedforward_double_mass_system.png" caption="<span class='figure-number'>Figure 2: </span>Double mass system" >}}
|
||||
|
||||
The equations of motion are:
|
||||
|
||||
\begin{align}
|
||||
m\_1 \ddot{x}\_1 &= -c\_1 \dot{x}\_1 - k(x\_1 - x\_2) - c (\dot{x}\_1 - \dot{x}\_2) + F \\\\
|
||||
m\_2 \ddot{x}\_2 &= k(x\_1 - x\_2) + c (\dot{x}\_1 - \dot{x}\_2)
|
||||
\end{align}
|
||||
|
||||
From the equation of motion, two transfer functions are computed:
|
||||
|
||||
\begin{align}
|
||||
\frac{x\_2}{F}(s) &= \frac{c s + k}{(m\_1 s^2 + c\_1 s)(m\_2 s^2 + c s + k) + m\_2 s^2 (cs + k)} \\\\
|
||||
\frac{x\_1}{F}(s) &= \frac{m\_2 s^2 + c s + k}{(m\_1 s^2 + c\_1 s)(m\_2 s^2 + c s + k) + m\_2 s^2 (cs + k)}
|
||||
\end{align}
|
||||
|
||||
Depending on whether \\(x\_1\\) or \\(x\_2\\) is to be positioned, two feedforward controllers can be used.
|
||||
|
||||
If \\(x\_2\\) is to be positioned, the ideal feedforward force \\(F\_{f2}\\) is:
|
||||
|
||||
\begin{equation}
|
||||
F\_{f2} = \frac{q\_1 s^4 + q\_2 s^3 + q\_3 s^2 + q\_4 s}{k\_{12} s + c} \cdot x\_2
|
||||
\end{equation}
|
||||
|
||||
with:
|
||||
|
||||
\begin{align}
|
||||
q\_1 &= m\_1 m\_2 \\\\
|
||||
q\_2 &= (m\_1 + m\_2) k\_{12} + m\_1 k\_2 + m\_2 k\_1 \\\\
|
||||
q\_3 &= (m\_1 + m\_2)c + k\_1 k\_2 + (k\_1 + k\_2) k\_{12} \\\\
|
||||
q\_4 &= (k\_1 + k\_2) c
|
||||
\end{align}
|
||||
|
||||
This means that if a fourth-order trajectory for \\(x\_2\\) is used, the feedforward architecture shown in [Figure 3](#figure--fig:feedforward-fourth-order-feedforward-architecture) can be used:
|
||||
|
||||
\begin{equation}
|
||||
F\_{f2} = \frac{1}{k\_12 s + c} (q\_1 d + q\_2 j + q\_3 q + q\_4 v)
|
||||
\end{equation}
|
||||
|
||||
<a id="figure--fig:feedforward-fourth-order-feedforward-architecture"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/feedforward_fourth_order_feedforward_architecture.png" caption="<span class='figure-number'>Figure 3: </span>Fourth order feedforward implementation" >}}
|
||||
|
||||
Similarly, if \\(x\_1\\) is to be positioned, the perfect feedforward force \\(F\_{f1}\\) is:
|
||||
|
||||
\begin{equation}
|
||||
F\_{f1} = \frac{1}{m\_2 s^2 + c s + k} \cdot (q\_1 s + q\_2 j + q\_3 a + q\_4 v)
|
||||
\end{equation}
|
||||
|
||||
with:
|
||||
|
||||
\begin{align}
|
||||
q\_1 &= m\_1 m\_2 \\\\
|
||||
q\_2 &= (m\_1 + m\_2) c + m\_2 c\_1 \\\\
|
||||
q\_3 &= (m\_1 + m\_2) k + c\_1 c \\\\
|
||||
q\_4 &= c\_1 k
|
||||
\end{align}
|
||||
|
||||
and \\(s\\) the snap, \\(j\\) the jerk, \\(a\\) the acceleration and \\(v\\) the velocity.
|
||||
|
||||
The same architecture shown in [Figure 3](#figure--fig:feedforward-fourth-order-feedforward-architecture) can be used.
|
||||
|
||||
In order to implement a fourth order trajectory, look at [this](https://www.mathworks.com/matlabcentral/fileexchange/16352-advanced-setpoints-for-motion-systems) nice implementation in Simulink of fourth-order trajectory planning (see also (<a href="#citeproc_bib_item_1">Lambrechts, Boerlage, and Steinbuch 2004</a>)).
|
||||
|
||||
|
||||
## Model Based Feedforward Control for Second Order resonance plant {#model-based-feedforward-control-for-second-order-resonance-plant}
|
||||
|
||||
<span class="org-target" id="org-target--sec-model-based-feedforward"></span>
|
||||
|
||||
See (<a href="#citeproc_bib_item_2">Schmidt, Schitter, and Rankers 2020</a>) (Section 4.2.1).
|
||||
|
||||
Suppose we have a second order plant (could typically be a piezoelectric stage):
|
||||
\\[ G(s) = \frac{C\_f \omega\_0^2}{s^2 + 2\xi \omega\_0 s + \omega\_0^2} \\]
|
||||
|
||||
<a id="figure--fig:feedforward-second-order-plant"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/feedforward_second_order_plant.png" caption="<span class='figure-number'>Figure 4: </span>Bode plot of a second order system with fitted model" >}}
|
||||
|
||||
The idea is to design a feedforward controller that corresponds to the plant inverse:
|
||||
\\[ C\_{ff}(s) = \frac{s^2 + 2\xi \omega\_0 s + \omega\_0^2}{C\_f \omega\_0^2} \\]
|
||||
|
||||
This controller has a pair of zeros, corresponding to an anti-resonance at the eigenfrequency of the first eigenmode of the system, with equal damping.
|
||||
The controller needs to be modified in such a way that it becomes realisable.
|
||||
In this case it is decided to create a resulting overall transfer function of the controller and the plant that acts like a well damped mass-spring system with the same natural frequency as the plant and an additional reduction of the excitation of higher frequency eigenmodes.
|
||||
In order to realise this controller first two poles have to be added, placed at the same frequency as the resonance but with a higher damping ratio.
|
||||
Typically a damping ratio between aperiodic and critical (\\(0.7 < \xi < 1\\)) is applied to avoid oscillations.
|
||||
For \\(\xi = 1\\) this results in the following transfer function:
|
||||
\\[ C\_{ff}(s) = \frac{s^2 + 2\xi \omega\_0 s + \omega\_0^2}{s^2 + 2 \cdot 1 \cdot \omega\_0 s + \omega\_0^2}\\]
|
||||
|
||||
<a id="figure--fig:feedforward-compensated-system"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/feedforward_compensated_system.png" caption="<span class='figure-number'>Figure 5: </span>Bode plot of the feedforward controlled system" >}}
|
||||
|
||||
|
||||
## Advanced Feedforward (from MIMO training) {#advanced-feedforward--from-mimo-training}
|
||||
|
||||
A typical control configuration for motion systems consists of:
|
||||
|
||||
- A setpoint generator (SPG)
|
||||
- A feedback controller (\\(K\_{fb}\\))
|
||||
- A feedforward controller (\\(K\_{ff}\\))
|
||||
|
||||
{{< figure src="/ox-hugo/feedforward_schematic.png" >}}
|
||||
|
||||
The closed-loop error (no disturbances) is:
|
||||
\\[ e(s) = (1 + G(s)K\_{fb})^{-1} (1 - G(s)K\_{ff}(s)) r(s) \\]
|
||||
It therefore depends on:
|
||||
|
||||
1. the setpoint \\(r\\)
|
||||
2. the feedforward controller
|
||||
3. the feedback controller
|
||||
|
||||
**Setpoint generation**:
|
||||
|
||||
- It can be 2nd order, 3rd order or 4th order
|
||||
- For 4th order, derivative of jerk is generated over time, and then integrated 4 times to give: jerk, acceleration, velocity and position.
|
||||
|
||||
**2nd order setpoint generation**:
|
||||
If we compute the fourier transform of the generated acceleration, we get the following signal (-20db/dec).
|
||||
|
||||
{{< figure src="/ox-hugo/feedforward_2nd_order_fourier.png" >}}
|
||||
|
||||
Notches are at \\(f\_1\\), \\(2f\_1\\), \\(3f\_1\\), ... with \\(f\_1 = \frac{a\_{\text{max}}}{v\_{\text{max}}}\\).
|
||||
It is therefore possible to choose the velocity and acceleration such that \\(f\_1\\) (or one of its integral multiple) matches the resonance frequency of the system.
|
||||
Therefore, the acceleration time constant can be chosen at the inverse of the plant resonance.
|
||||
|
||||
**3rd order setpoint generation**:
|
||||
There is a drawback of having an extra time of \\(\frac{a\_{max}}{J\_{max}}\\) seconds.
|
||||
However, we get an additional -20db/dec at high frequency, and additional notches at \\(f\_2 = \frac{j\_{max}}{a\_{max}}\\).
|
||||
This new notch has larger "damping" and can be used to be more robust against resonances of the plant.
|
||||
|
||||
**Feedforward control**:
|
||||
Plant inversion: if \\(K\_{ff} = G^{-1}(s) \Longrightarrow e(s) = 0\\)
|
||||
Challenges:
|
||||
|
||||
- Model required
|
||||
- High order
|
||||
- Delay/non-minimum phase?
|
||||
|
||||
**Rigid body dynamics**:
|
||||
\\(G(s) = \frac{1}{ms^2}\\)
|
||||
In that case, \\(G^{-1}(s) = ms^2\\), and with 2nd order setpoint, a feedforward controller \\(K\_{ff}(s) = m\\) gives good performances.
|
||||
|
||||
{{< figure src="/ox-hugo/feedforward_schematic_rigid_body.png" >}}
|
||||
|
||||
**Discrete time implementation**.
|
||||
The DAC can usually be modelled by a "Zero Order Hold" (ZOH) and the ADC with a "sampler".
|
||||
This adds **1.5 samples of delay**: \\(0.5z^{-1} + 0.5z^{-2}\\).
|
||||
|
||||
It seems the ZOH can be modelled by an "half-sample delay".
|
||||
There is an additional one sample delay.
|
||||
|
||||
{{< figure src="/ox-hugo/feedforward_schematic_zoh_sampler.png" >}}
|
||||
|
||||
Therefore, it is very important to match the delay of the plant:
|
||||
|
||||
> In high-performance control system, it can be useful to consider propagation delay when designing the feedforward and feedback controllers.
|
||||
> Feedforward control directly uses the reference trajectory and does not depend on any measurement data.
|
||||
> However, the feedback controller uses (delayed) measured position data.
|
||||
> Due to propagation delay in the control system (caused by the controller, actuator or sensor), it can take multiple cycles for the effect of feedforward control to be observed in the measured position.
|
||||
> In the meantime, the feedback control is already seeing a tracking error and is compensating for it.
|
||||
> Essentially, the result of the feedforward action arrives too late, resulting in possible overcompensation by the feedback control.
|
||||
> When the propagation delay in the control system is known, it can be compensated for by applying this same delay to the demand position in the tracking error calculation.
|
||||
|
||||
{{< figure src="/ox-hugo/feedforward_schematic_delay.png" >}}
|
||||
|
||||
**Feedforward for flexible dynamics**:
|
||||
4th order dynamics:
|
||||
|
||||
{{< figure src="/ox-hugo/feedforward_4th_order.png" >}}
|
||||
|
||||
Dynamics from \\(F\\) to \\(x\_2\\) is:
|
||||
\\[ G(s) = \frac{x\_2}{F} = \frac{cs + k}{m\_1m\_2 s^2(s^2 + 2\xi\omega\_0 s + \omega\_0^2)} \\]
|
||||
We take the inverse for the feedforward controller:
|
||||
\\[ K\_{ff}(s) = G^{-1}(s) = \frac{m\_1m\_2 s^2(s^2 + 2\xi\omega\_0 s + \omega\_0^2)}{cs + k} \\]
|
||||
If we neglect damped: \\(\xi = 0\\), and we get:
|
||||
\\[ K\_{ff}(s) = \underbrace{\frac{m\_1m\_2}{k} s^4}\_{\text{snap FF}} + \underbrace{(m\_1 + m\_2) s^2}\_{\text{acc FF}} \\]
|
||||
This can be solved by using **snap feedforward**
|
||||
|
||||
{{< figure src="/ox-hugo/feedforward_schematic_snap.png" >}}
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_1"></a>Lambrechts, P., M. Boerlage, and M. Steinbuch. 2004. “Trajectory Planning and Feedforward Design for High Performance Motion Systems.” In <i>Proceedings of the 2004 American Control Conference</i>. doi:<a href="https://doi.org/10.23919/acc.2004.1384042">10.23919/acc.2004.1384042</a>.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_2"></a>Schmidt, R. M., G. Schitter, and A. Rankers. 2020. <i>The Design of High Performance Mechatronics - Third Revised Edition</i>. Ios Press.</div>
|
||||
</div>
|
||||
@@ -0,0 +1,28 @@
|
||||
+++
|
||||
title = "Finite Element Model"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
|
||||
## Matlab State Space Model from FEM on Ansys {#matlab-state-space-model-from-fem-on-ansys}
|
||||
|
||||
Some resources:
|
||||
|
||||
- (<a href="#citeproc_bib_item_1">Hatch 2000</a>) ([Notes]({{< relref "hatch00_vibrat_matlab_ansys.md" >}}))
|
||||
- (<a href="#citeproc_bib_item_2">Khot and Yelve 2011</a>)
|
||||
- (NO_ITEM_DATA:kosarac15_creat_siso_ansys)
|
||||
|
||||
The idea is to extract reduced state space model from Ansys into Matlab.
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_1"></a>Hatch, M. R. 2000. <i>Vibration Simulation Using MATLAB and ANSYS</i>. CRC Press.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_2"></a>Khot, SM, and Nitesh P Yelve. 2011. “Modeling and Response Analysis of Dynamic Systems by Using Ansys and Matlab.” <i>Journal of Vibration and Control</i> 17 (6). SAGE Publications Sage UK: London, England: 953–58.</div>
|
||||
<div class="csl-entry">NO_ITEM_DATA:kosarac15_creat_siso_ansys</div>
|
||||
</div>
|
||||
@@ -0,0 +1,64 @@
|
||||
+++
|
||||
title = "Flexible Joints"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
|
||||
## Resources {#resources}
|
||||
|
||||
Books:
|
||||
|
||||
- (<a href="#citeproc_bib_item_6">Smith 2000</a>)
|
||||
- (<a href="#citeproc_bib_item_5">Lobontiu 2002</a>)
|
||||
- (<a href="#citeproc_bib_item_3">Henein 2003</a>)
|
||||
- (<a href="#citeproc_bib_item_7">Smith 2005</a>)
|
||||
- (<a href="#citeproc_bib_item_8">Soemers 2011</a>)
|
||||
- (<a href="#citeproc_bib_item_2">Cosandier 2017</a>)
|
||||
|
||||
Presentations:
|
||||
|
||||
- (<a href="#citeproc_bib_item_4">Henein 2010</a>)
|
||||
|
||||
|
||||
## Flexure Joints for Stewart Platforms {#flexure-joints-for-stewart-platforms}
|
||||
|
||||
From (<a href="#citeproc_bib_item_1">Chen and McInroy 2000</a>):
|
||||
|
||||
> To avoid the extremely non-linear micro-dynamics of joint friction and backlash, these hexapods employ flexure joints.
|
||||
> A flexure joint bends material to achieve motion, rather than sliding of rolling across two surfaces.
|
||||
> This does eliminate friction and backlash, but adds spring dynamics and limits the workspace.
|
||||
|
||||
<https://www.youtube.com/watch?v=tenxq7N5q3k>
|
||||
|
||||
|
||||
## Materials {#materials}
|
||||
|
||||
Typical materials used for flexible joints are:
|
||||
|
||||
- Steel
|
||||
- Aluminum
|
||||
- Titanium
|
||||
|
||||
|
||||
## Manufacturers {#manufacturers}
|
||||
|
||||
<https://www.flexpivots.com/>
|
||||
Prototyping kits: <https://www.motusmechanical.com/>
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_1"></a>Chen, Yixin, and J.E. McInroy. 2000. “Identification and Decoupling Control of Flexure Jointed Hexapods.” In <i>Proceedings 2000 ICRA. Millennium Conference. IEEE International Conference on Robotics and Automation. Symposia Proceedings (Cat. No.00CH37065)</i>. doi:<a href="https://doi.org/10.1109/robot.2000.844878">10.1109/robot.2000.844878</a>.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_2"></a>Cosandier, Florent. 2017. <i>Flexure Mechanism Design</i>. Boca Raton, FL Lausanne, Switzerland: Distributed by CRC Press, 2017EOFL Press.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_3"></a>Henein, Simon. 2003. <i>Conception Des Guidages Flexibles</i>. Lausanne, Suisse: Presses polytechniques et universitaires romandes.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_4"></a>———. 2010. “Flexures: Simply Subtle.” In <i>Diamond Light Source Proceedings, MEDSI 2010</i>. Cambridge University Press.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_5"></a>Lobontiu, Nicolae. 2002. <i>Compliant Mechanisms: Design of Flexure Hinges</i>. CRC press.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_6"></a>Smith, Stuart T. 2000. <i>Flexures: Elements of Elastic Mechanisms</i>. Crc Press.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_7"></a>———. 2005. <i>Foundations of Ultra-Precision Mechanism Design</i>. Vol. 2. CRC Press.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_8"></a>Soemers, Herman. 2011. <i>Design Principles for Precision Mechanisms</i>. T-Pointprint.</div>
|
||||
</div>
|
||||
@@ -0,0 +1,83 @@
|
||||
+++
|
||||
title = "Force Sensors"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
category = "equipment"
|
||||
+++
|
||||
|
||||
Tags
|
||||
: [Signal Conditioner]({{< relref "signal_conditioner.md" >}}), [Modal Analysis]({{< relref "modal_analysis.md" >}})
|
||||
|
||||
|
||||
## Technologies {#technologies}
|
||||
|
||||
There are two main technique for force sensors:
|
||||
|
||||
- piezoelectric technology
|
||||
- strain gauge technology
|
||||
|
||||
The choice between the two is usually based on whether the measurement is static (strain gauge) or dynamics (piezoelectric).
|
||||
|
||||
Main differences between the two are shown in [Figure 1](#figure--fig:force-sensor-piezo-vs-strain-gauge).
|
||||
|
||||
<a id="figure--fig:force-sensor-piezo-vs-strain-gauge"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/force_sensor_piezo_vs_strain_gauge.png" caption="<span class='figure-number'>Figure 1: </span>Piezoelectric Force sensor VS Strain Gauge Force sensor" >}}
|
||||
|
||||
|
||||
## Piezoelectric Force Sensors {#piezoelectric-force-sensors}
|
||||
|
||||
|
||||
### Dynamics and Noise of a piezoelectric force sensor {#dynamics-and-noise-of-a-piezoelectric-force-sensor}
|
||||
|
||||
An analysis the dynamics and noise of a piezoelectric force sensor is done in (<a href="#citeproc_bib_item_1">Fleming 2010</a>) ([Notes]({{< relref "fleming10_nanop_system_with_force_feedb.md" >}})).
|
||||
|
||||
|
||||
### Manufacturers {#manufacturers}
|
||||
|
||||
| Manufacturers | Country |
|
||||
|-------------------------------------------------------------------------------------------------|---------|
|
||||
| [PCB](https://www.pcb.com/products/productfinder.aspx?tx=17) | USA |
|
||||
| [HBM](https://www.hbm.com/en/6107/force-sensors-with-flange-mounting/) | Germany |
|
||||
| [Kistler](https://www.kistler.com/fr/produits/composants/capteurs-de-force/?pfv_metrics=metric) | Swiss |
|
||||
| [MMF](https://www.mmf.de/force_transducers.htm) | Germany |
|
||||
| [Sinocera](http://www.china-yec.net/sensors/) | China |
|
||||
|
||||
|
||||
### Signal Conditioner {#signal-conditioner}
|
||||
|
||||
The voltage generated by the piezoelectric material generally needs to be amplified using a [Signal Conditioner]({{< relref "signal_conditioner.md" >}}).
|
||||
|
||||
Either **charge** amplifiers or **voltage** amplifiers can be used.
|
||||
|
||||
|
||||
### Effect of using multiple Stacks in series of parallels {#effect-of-using-multiple-stacks-in-series-of-parallels}
|
||||
|
||||
If two stack are wired in series, the generated charge is kept constant and the capacitance is reduced by a factor 2.
|
||||
Thus, the measured voltage is double while the measured charge is kept constant.
|
||||
|
||||
If two stacks are wired in parallel, the capacitance and the number of charge will be doubled.
|
||||
Thus, if a voltage amplifier is used, no change of voltage will be experienced.
|
||||
However, if a charge conditioner is used, the signal will be doubled.
|
||||
|
||||
|
||||
## Strain Gauge (Load Cells) {#strain-gauge--load-cells}
|
||||
|
||||
|
||||
### Manufacturers {#manufacturers}
|
||||
|
||||
| Manufacturers | Country |
|
||||
|--------------------------------------------------------------------------------|----------------|
|
||||
| [Sensel](https://www.sensel-measurement.fr/en/3-load-cell) | France |
|
||||
| [Omega](https://www.omega.com/en-us/resources/load-cells) | United Kingdom |
|
||||
| [Megatron](https://www.megatron.de/en/category/load-cells.html) | Germany |
|
||||
| [PCB](https://www.pcb.com/products/product-finder?tx=19) | USA |
|
||||
| [Interface](https://quickship.interfaceforce.com/product-category/load-cells/) | USA |
|
||||
| [Althen](https://www.althensensors.com/sensors/weighing-sensors-load-cells/) | Netherlands |
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_1"></a>Fleming, A.J. 2010. “Nanopositioning System with Force Feedback for High-Performance Tracking and Vibration Control.” <i>IEEE/ASME Transactions on Mechatronics</i> 15 (3): 433–47. doi:<a href="https://doi.org/10.1109/tmech.2009.2028422">10.1109/tmech.2009.2028422</a>.</div>
|
||||
</div>
|
||||
@@ -0,0 +1,50 @@
|
||||
+++
|
||||
title = "Fractional Order Transfer Functions"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
: [Digital Filters]({{< relref "digital_filters.md" >}})
|
||||
|
||||
|
||||
## Example Using the FOMCON toolbox {#example-using-the-fomcon-toolbox}
|
||||
|
||||
The documentation for the toolbox is accessible [here](https://fomcon.net/fomcon-toolbox/overview/).
|
||||
|
||||
Here are the parameters that are used to define the wanted properties of the fractional model:
|
||||
|
||||
```matlab
|
||||
wb = 2*pi*0.1; % Lowest frequency bound
|
||||
wh = 2*pi*1e3; % Highest frequency bound
|
||||
n = 8; % Approximation order
|
||||
r = 0.5; % Wanted slope, The corresponding phase will be pi*r
|
||||
```
|
||||
|
||||
Then, to create an approximation of a fractional-order operator \\(s^r\\) of order \\(n\\) which is valid in the frequency range \\([\omega\_b\\, \omega\_h]\\), the `oustafod` function can be used:
|
||||
|
||||
```matlab
|
||||
G = oustafod(r,n,wb,wh);
|
||||
```
|
||||
|
||||
```text
|
||||
G =
|
||||
|
||||
79.27 s^17 + 7.93e05 s^16 + 2.918e09 s^15 + 5.143e12 s^14 + 4.782e15 s^13 + 2.453e18 s^12 + 7.103e20 s^11 + 1.175e23 s^10 + 1.119e25 s^9 + 6.138e26 s^8 + 1.942e28 s^7 + 3.534e29 s^6 + 3.675e30 s^5 + 2.157e31 s^4 + 6.984e31 s^3 + 1.193e32 s^2 + 9.764e31 s + 2.939e31
|
||||
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
s^17 + 1.312e04 s^16 + 6.327e07 s^15 + 1.462e11 s^14 + 1.783e14 s^13 + 1.199e17 s^12 + 4.553e19 s^11 + 9.877e21 s^10 + 1.232e24 s^9 + 8.866e25 s^8 + 3.678e27 s^7 + 8.775e28 s^6 + 1.196e30 s^5 + 9.208e30 s^4 + 3.909e31 s^3 + 8.755e31 s^2 + 9.395e31 s + 3.707e31
|
||||
|
||||
Continuous-time transfer function.
|
||||
```
|
||||
|
||||
Few examples of different slopes are shown in [Figure 1](#figure--fig:approximate-deriv-int).
|
||||
|
||||
<a id="figure--fig:approximate-deriv-int"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/approximate_deriv_int.png" caption="<span class='figure-number'>Figure 1: </span>Example of fractional approximations" >}}
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,24 @@
|
||||
+++
|
||||
title = "Granite"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
category = "equipment"
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
|
||||
## Manufacturers {#manufacturers}
|
||||
|
||||
| Manufacturers | Country |
|
||||
|--------------------------------------------------|-------------|
|
||||
| [Microplan](https://www.microplan-group.com/fr/) | France |
|
||||
| [Zali](http://zali-precision.it/en/products/) | Italy |
|
||||
| [Mytri](https://www.mytri.nl/en) | Netherlands |
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,54 @@
|
||||
+++
|
||||
title = "Gravity Compensation"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
|
||||
## Reviews {#reviews}
|
||||
|
||||
<https://www.zaber.com/articles/magnetic-counterbalances-for-vertical-applications>
|
||||
|
||||
|
||||
## Counterweight {#counterweight}
|
||||
|
||||
(<a href="#citeproc_bib_item_3">Yoshioka et al. 2017</a>)
|
||||
|
||||
|
||||
## Magnetic {#magnetic}
|
||||
|
||||
- (<a href="#citeproc_bib_item_1">Hol, Lomonova, and Vandenput 2006</a>)
|
||||
- <https://linmot.com/products/magspring/>
|
||||
- (<a href="#citeproc_bib_item_2">Westhoff and Maas 2024</a>)
|
||||
|
||||
|
||||
## Simple Spring {#simple-spring}
|
||||
|
||||
|
||||
## Constant force spring {#constant-force-spring}
|
||||
|
||||
<https://www.inexal.be/fr/ressorts-force-constante>
|
||||
<https://www.leespring.com/constant-force-springs>
|
||||
<https://aimcoil.com/constant-force-springs/>
|
||||
|
||||
|
||||
## Variable Gravity Compensation {#variable-gravity-compensation}
|
||||
|
||||
As the mass / position of the load may change during operation, a variable gravity compensation mechanism is very useful.
|
||||
|
||||
|
||||
## Commercial products {#commercial-products}
|
||||
|
||||
<https://linmot.com/blog/floating-weights-with-magspring/>
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_1"></a>Hol, S.A.J., E. Lomonova, and A.J.A. Vandenput. 2006. “Design of a Magnetic Gravity Compensation System.” <i>Precision Engineering</i> 30 (3): 265–73. doi:<a href="https://doi.org/10.1016/j.precisioneng.2005.09.005">10.1016/j.precisioneng.2005.09.005</a>.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_2"></a>Westhoff, Bela Schulte, and Jürgen Maas. 2024. “Design of an Electromagnetic Linear Drive with Permanent Magnetic Weight Compensation.” <i>Actuators</i> 13 (3): 107. doi:<a href="https://doi.org/10.3390/act13030107">10.3390/act13030107</a>.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_3"></a>Yoshioka, Hayato, Hidenori Shinno, Jiang Zhu, and Manabu Uchiumi. 2017. “A Newly Developed Zero-Gravity Vertical Motion Mechanism for Precision Machining.” <i>CIRP Annals</i> 66 (1): 389–92. doi:<a href="https://doi.org/10.1016/j.cirp.2017.04.057">10.1016/j.cirp.2017.04.057</a>.</div>
|
||||
</div>
|
||||
@@ -0,0 +1,23 @@
|
||||
+++
|
||||
title = "H Infinity Control"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
|
||||
## Nice Citations {#nice-citations}
|
||||
|
||||
From _Rosenbrock, H. H. (1974). Computer-Aided Control System Design, Academic Press, New York_:
|
||||
|
||||
> Solutions are constrained by so many requirements that it is virtually impossible to list them all.
|
||||
> The designer finds himself threading a maze of such requirements, attempting to reconcile conflicting demands of cost, performance, easy maintenance, and so on.
|
||||
> A good design usually has strong aesthetic appeal to those who are competent in the subject.
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,36 @@
|
||||
+++
|
||||
title = "HAC-HAC"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
High-Authority Control/Low-Authority Control
|
||||
|
||||
From (<a href="#citeproc_bib_item_2">Preumont 2018</a>):
|
||||
|
||||
> The HAC/LAC approach consist of combining the two approached in a dual-loop control as shown in [Figure 1](#figure--fig:hac-lac-control-architecture). The inner loop uses a set of collocated actuator/sensor pairs for decentralized active damping with guaranteed stability ; the outer loop consists of a non-collocated HAC based on a model of the actively damped structure. This approach has the following advantages:
|
||||
>
|
||||
> - The active damping extends outside the bandwidth of the HAC and reduces the settling time of the modes which are outsite the bandwidth
|
||||
> - The active damping makes it easier to gain-stabilize the modes outside the bandwidth of the output loop (improved gain margin)
|
||||
> - The larger damping of the modes within the controller bandwidth makes them more robust to the parmetric uncertainty (improved phase margin)
|
||||
|
||||
<a id="figure--fig:hac-lac-control-architecture"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/hac_lac_control_architecture.png" caption="<span class='figure-number'>Figure 1: </span>HAC-LAC Control Architecture" >}}
|
||||
|
||||
Nice papers:
|
||||
|
||||
- (<a href="#citeproc_bib_item_3">Williams and Antsaklis 1989</a>)
|
||||
- (<a href="#citeproc_bib_item_1">Aubrun 1980</a>)
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_1"></a>Aubrun, J.N. 1980. “Theory of the Control of Structures by Low-Authority Controllers.” <i>Journal of Guidance and Control</i> 3 (5): 444–51. doi:<a href="https://doi.org/10.2514/3.56019">10.2514/3.56019</a>.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_2"></a>Preumont, A. 2018. <i>Vibration Control of Active Structures - Fourth Edition</i>. Solid Mechanics and Its Applications. Springer International Publishing. doi:<a href="https://doi.org/10.1007/978-3-319-72296-2">10.1007/978-3-319-72296-2</a>.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_3"></a>Williams, T.W.C., and P.J. Antsaklis. 1989. “Limitations of Vibration Suppression in Flexible Space Structures.” In <i>Proceedings of the 28th IEEE Conference on Decision and Control</i>. doi:<a href="https://doi.org/10.1109/cdc.1989.70563">10.1109/cdc.1989.70563</a>.</div>
|
||||
</div>
|
||||
@@ -0,0 +1,215 @@
|
||||
+++
|
||||
title = "Heat Transfer"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
|
||||
## Electrical Analogy - Lumped Mass Modeling {#electrical-analogy-lumped-mass-modeling}
|
||||
|
||||
The difference in temperature \\(\Delta T\\) is driving potential energy flow \\(Q\\) (in watts):
|
||||
|
||||
\begin{equation}
|
||||
\Delta T = R\_{th} \cdot Q
|
||||
\end{equation}
|
||||
|
||||
\\(R\_{th}\\) is the analogy of a "thermal resistance", and is expressed in K/W.
|
||||
|
||||
|
||||
## Conduction (diffusion) {#conduction--diffusion}
|
||||
|
||||
The _conduction_ corresponds to the heat transfer \\(Q\\) (in watt) through molecular agitation within a material.
|
||||
|
||||
\begin{equation}
|
||||
R\_{th} = \frac{d}{\lambda A}
|
||||
\end{equation}
|
||||
|
||||
with:
|
||||
|
||||
- \\(\lambda\\) the thermal conductivity in \\([W/m \cdot K]\\)
|
||||
- \\(A\\) the surface area in \\([m^2]\\)
|
||||
- \\(d\\) the length of the barrier in \\([m]\\)
|
||||
|
||||
|
||||
## Convection {#convection}
|
||||
|
||||
The convection corresponds to the heat transfer \\(Q\\) through flow of a fluid.
|
||||
It can be either _natural_ or _forced_.
|
||||
|
||||
\begin{equation}
|
||||
R\_{th} = \frac{1}{h A}
|
||||
\end{equation}
|
||||
|
||||
with:
|
||||
|
||||
- \\(h\\) the convection heat transfer coefficient in \\([W/m^2 \cdot K]\\).
|
||||
\\(h \approx 10.5 - v + 10\sqrt{v}\\) with \\(v\\) the velocity of the object through the fluid in \\([m/s]\\)
|
||||
Typically:
|
||||
- \\(h = 5 - 10\ W/m^2/K\\) for free convection with air
|
||||
- \\(h = 500 - 5000\ W/m^2/K\\) for forced water cooling in a tube of 5mm diameter
|
||||
- \\(A\\) the surface area in \\([m^2]\\)
|
||||
|
||||
Note that clean-room air flow should be considered as forced convection, and \\(h \approx 10 W/m^2/K\\).
|
||||
|
||||
|
||||
## Radiation {#radiation}
|
||||
|
||||
_Radiation_ corresponds to the heat transfer \\(Q\\) (in watt) through the emission of electromagnetic waves from the emitter to its surroundings.
|
||||
|
||||
In the general case, we have:
|
||||
\\[ Q = \epsilon \cdot \sigma \cdot A \cdot (T\_r^4 - T\_s^4) \\]
|
||||
with:
|
||||
|
||||
- \\(\epsilon\\) the emissivity which corresponds to the ability of a surface to emit energy through radiation relative to a black body surface at equal temperature.
|
||||
It is between 0 (no emissivity) and 1 (maximum emissivity)
|
||||
- \\(\sigma\\) the Stefan-Boltzmann constant: \\(\sigma = 5.67 \cdot 10^{-8} \\, \frac{W}{m^2 K^4}\\)
|
||||
- \\(T\_r\\) the temperature of the emitter in \\([K]\\)
|
||||
- \\(T\_s\\) the temperature of the surrounding in \\([K]\\)
|
||||
|
||||
In order to use the lumped mass approximation, the equations can be linearized to obtain:
|
||||
|
||||
\begin{equation}
|
||||
R\_{th} = \frac{1}{h\_{rad} A}
|
||||
\end{equation}
|
||||
|
||||
with:
|
||||
|
||||
- \\(h\_{rad}\\) the effective heat transfer coefficient for radiation in \\(W/m^2 \cdot K\\)
|
||||
- \\(A\\) the surface in \\([m^2]\\)
|
||||
|
||||
|
||||
### Practical Cases {#practical-cases}
|
||||
|
||||
Two parallel plates:
|
||||
|
||||
\begin{equation}
|
||||
h\_{rad} = \frac{\sigma}{1/\epsilon\_1 + 1/\epsilon\_2 - 1} (T\_1^2 + T\_2^2)(T\_1 + T\_2)
|
||||
\end{equation}
|
||||
|
||||
Two concentric cylinders:
|
||||
|
||||
\begin{equation}
|
||||
h\_{rad} = \frac{\sigma}{1/\epsilon\_1 + r\_1/r\_2 (1/\epsilon\_2 - 1)} (T\_1^2 + T\_2^2)(T\_1 + T\_2)
|
||||
\end{equation}
|
||||
|
||||
A small object enclosed in a large volume:
|
||||
|
||||
\begin{equation}
|
||||
h\_{rad} = \epsilon\_1 \sigma (T\_1^2 + T\_2^2)(T\_1 + T\_2)
|
||||
\end{equation}
|
||||
|
||||
|
||||
### Emissivity {#emissivity}
|
||||
|
||||
The emissivity of materials highly depend on the surface finish (the more polished, the lower the emissivity).
|
||||
Some examples are given in <tab:emissivity_examples>.
|
||||
|
||||
Gold coating gives also a very low emissivity and is typically used in cryogenic applications.
|
||||
|
||||
<a id="table--tab:emissivity-examples"></a>
|
||||
<div class="table-caption">
|
||||
<span class="table-number"><a href="#table--tab:emissivity-examples">Table 1</a>:</span>
|
||||
Some examples of emissivity (specified at 25 degrees)
|
||||
</div>
|
||||
|
||||
| Substance | Emissivity |
|
||||
|----------------------------|------------|
|
||||
| Silver (polished) | 0.005 |
|
||||
| Silver (oxidized) | 0.04 |
|
||||
| Stainless Steel (polished) | 0.02 |
|
||||
| Aluminium (polished) | 0.02 |
|
||||
| Aluminium (oxidized) | 0.2 |
|
||||
| Aluminium (anodized) | 0.9 |
|
||||
| Copper (polished) | 0.03 |
|
||||
| Copper (oxidized) | 0.87 |
|
||||
|
||||
<div class="exampl">
|
||||
|
||||
Let's take a polished aluminum plate (20 by 20 cm) at 125K (temperature of zero thermal expansion coefficient of silicon) surrounded by elements are 25 degrees (300 K):
|
||||
\\[ P = \epsilon \cdot \sigma \cdot A \cdot (T\_r^4 - T\_s^4) = 0.36\\, J \\]
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
## Heat {#heat}
|
||||
|
||||
The _heat_ \\(Q\\) (in Joules) corresponds to the energy necessary to change the temperature of the mass with a certain material specific heat capacity:
|
||||
\\[ Q = m \cdot c \cdot \Delta T \\]
|
||||
with:
|
||||
|
||||
- \\(m\\) the mass in \\([kg]\\)
|
||||
- \\(c\\) the specific heat capacity in \\([J/kg \cdot K]\\)
|
||||
- \\(\Delta T\\) the temperature different \\([K]\\)
|
||||
|
||||
<div class="exampl">
|
||||
|
||||
Let's compute the heat (i.e. energy) necessary to increase a 1kg granite by 1 degree.
|
||||
The specific heat capacity of granite is \\(c = 790\\,[J/kg\cdot K]\\).
|
||||
The required heat is then:
|
||||
\\[ Q = m\cdot c \cdot \Delta T = 790 \\,J \\]
|
||||
|
||||
</div>
|
||||
|
||||
<a id="table--tab:specific-heat-capacity"></a>
|
||||
<div class="table-caption">
|
||||
<span class="table-number"><a href="#table--tab:specific-heat-capacity">Table 2</a>:</span>
|
||||
Some examples of specific heat capacity
|
||||
</div>
|
||||
|
||||
| Substance | Specific heat capacity [J/kg.K] |
|
||||
|---------------------|---------------------------------|
|
||||
| Air | 1012 |
|
||||
| Aluminium | 897 |
|
||||
| Copper | 385 |
|
||||
| Granite | 790 |
|
||||
| Steel | 466 |
|
||||
| Water at 25 degrees | 4182 |
|
||||
|
||||
|
||||
## Heat Transport (i.e. Water cooling) {#heat-transport--i-dot-e-dot-water-cooling}
|
||||
|
||||
<a id="figure--fig:heat-transfer-fluid"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/heat_transfer_fluid.png" caption="<span class='figure-number'>Figure 1: </span>Heat transfered to the fluid" >}}
|
||||
|
||||
\begin{equation}
|
||||
Q\_{in} = h \cdot A \cdot (T\_{wall} - T\_{mean})
|
||||
\end{equation}
|
||||
|
||||
<a id="figure--fig:heat-transport"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/heat_transport.png" caption="<span class='figure-number'>Figure 2: </span>Heat Transport in the fluid" >}}
|
||||
|
||||
\begin{equation}
|
||||
Q\_{out} = \phi \rho c\_p (T\_{mean,in} - T\_{mean,out})
|
||||
\end{equation}
|
||||
|
||||
with:
|
||||
|
||||
- \\(Q\_{out}\\) the transported heat in W
|
||||
- \\(\phi\\) the flow in \\(m^3/s\\)
|
||||
- \\(\rho\\) the fluid density in \\(kg/m^3\\)
|
||||
- \\(c\_p\\) the specific heat capacity of the fluid in \\(J/(kg \cdot K)\\)
|
||||
- \\(T\_{mean}\\) the mean incoming and outgoing fluid temperature
|
||||
|
||||
Because of energy balance, we have in the stationary condition: \\(Q\_{in} = Q\_{out}\\)
|
||||
|
||||
|
||||
## Heat flow {#heat-flow}
|
||||
|
||||
The heat flow \\(P\\) (in watt) is the derivative of the heat:
|
||||
\\[ P = \cdot{Q} = \frac{dQ}{dt} = \frac{dT}{R\_T} = C\_T \cdot dT \\]
|
||||
with:
|
||||
|
||||
- \\(Q\\) the heat in [W]
|
||||
- \\(R\_T\\) the thermal resistance in \\([K/W]\\)
|
||||
- \\(C\_T\\) the thermal conductance in \\([W/K]\\)
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,48 @@
|
||||
+++
|
||||
title = "Heaters"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
|
||||
## Commercial products {#commercial-products}
|
||||
|
||||
- <https://www.tcdirect.fr/product-2-300-1/Cartouche-chauffante>
|
||||
- <https://www.thorlabs.com/newgrouppage9.cfm?objectgroup_id=305>
|
||||
|
||||
|
||||
### Cryogenic temperature (~120K, UHV compatible) {#cryogenic-temperature--120k-uhv-compatible}
|
||||
|
||||
|
||||
### 20degC temperature {#20degc-temperature}
|
||||
|
||||
<https://fr.rs-online.com/web/p/elements-chauffants/7983769>
|
||||
|
||||
|
||||
### 20degC temperature (UHV) {#20degc-temperature--uhv}
|
||||
|
||||
From <https://confluence.esrf.fr/display/~moyne/GRATING+MIRRORS+COOLING+SYSTEM+DESIGN>:
|
||||
|
||||
- <https://www.watlow.com/Products/Heaters/Specialty-Heaters/ULTRAMIC-Ceramic-Heaters>
|
||||
|
||||
From (<a href="#citeproc_bib_item_1">Neto et al. 2022</a>)
|
||||
|
||||
> UHV-compatible Kapton heaters from Taiwan KLC (part number TSC013D003GR36Z01), with nominal resistances of 36 Ω and 14.4 Ω for 4 W and 10 W power at 12 V, respectively
|
||||
> Although having an easy integration and proven vacuum compatibility, along with low cost, the flexible nature of the Kapton heaters made the clamping to the components a potential source of failure.
|
||||
|
||||
<!--quoteend-->
|
||||
|
||||
> Therefore, a new heating element is under development for higher reliability.
|
||||
> As depicted in Fig. 2, it consists of an **SMD nickel thin film and alumina power resistor from Susumu**, soldered over a small aluminium metalcore PCB (Printed Circuit Board) using a lead free (SAC305) solder paste.
|
||||
> The board is then encapsulated inside a small aluminium case using the Stycast 2850FT epoxy resin along with CAT11 catalyser.
|
||||
> The aluminum PCB and housing serve as efficient heat condutors to the part of interest
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_1"></a>Neto, Joao Brito, Renan Geraldes, Francesco Lena, Marcelo Moraes, Antonio Piccino Neto, Marlon Saveri Silva, and Lucas Volpe. 2022. “Temperature Control for Beamline Precision Systems of Sirius/Lnls.” <i>Proceedings of the 18th International Conference on Accelerator and Large Experimental Physics Control Systems</i> ICALEPCS2021: China. doi:<a href="https://doi.org/10.18429/JACOW-ICALEPCS2021-WEPV001">10.18429/JACOW-ICALEPCS2021-WEPV001</a>.</div>
|
||||
</div>
|
||||
@@ -0,0 +1,25 @@
|
||||
+++
|
||||
title = "IcePAP"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
category = "esrf"
|
||||
+++
|
||||
|
||||
Tags
|
||||
: [Stepper Motor]({{< relref "stepper_motor.md" >}})
|
||||
|
||||
|
||||
## Icepap CMS {#icepap-cms}
|
||||
|
||||
|
||||
## Icepap Console {#icepap-console}
|
||||
|
||||
To get the status of one axis: `5:?vstatus` (`5` is the axis index).
|
||||
|
||||
Then, if there is some warning, to get more information, use `5:?warning`.
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,71 @@
|
||||
+++
|
||||
title = "Inertial Sensors"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
category = "equipment"
|
||||
+++
|
||||
|
||||
Tags
|
||||
: [Position Sensors]({{< relref "position_sensors.md" >}})
|
||||
|
||||
|
||||
## Review of Absolute (inertial) Position Sensors {#review-of-absolute--inertial--position-sensors}
|
||||
|
||||
- Collette, C. et al., Review: inertial sensors for low-frequency seismic vibration measurement (<a href="#citeproc_bib_item_2">Collette, Janssens, Fernandez-Carmona, et al. 2012</a>)
|
||||
- Collette, C. et al., Comparison of new absolute displacement sensors (<a href="#citeproc_bib_item_3">Collette, Janssens, Mokrani, et al. 2012</a>)
|
||||
|
||||
<a id="figure--fig:collette12-absolute-disp-sensors"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/collette12_absolute_disp_sensors.png" caption="<span class='figure-number'>Figure 1: </span>Dynamic range of several types of inertial sensors; Price versus resolution for several types of inertial sensors" >}}
|
||||
|
||||
|
||||
## Accelerometers {#accelerometers}
|
||||
|
||||
| Manufacturers | Country |
|
||||
|----------------------------------------------------------------------------------------------|-------------|
|
||||
| [Micromega Dynamics](https://micromega-dynamics.com/products/) | Belgium |
|
||||
| [MMF](https://www.mmf.de/seismic_accelerometers.htm) | Germany |
|
||||
| [PCB](https://www.pcb.com/products/productfinder.aspx?tx=14) | USA |
|
||||
| [Guralp](https://www.guralp.com/products/surface) | UK |
|
||||
| [Nanometric](https://www.nanometrics.ca/products/accelerometers) | Canada |
|
||||
| [Kistler](https://www.kistler.com/fr/produits/composants/accelerometres/?pfv_metrics=metric) | Swiss |
|
||||
| [Beran](https://www.beraninstruments.com/Products/Vibration-Transducers-and-Cabling) | UK |
|
||||
| [Althen](https://www.althensensors.com/fr/capteurs/capteurs-d-acceleration/) | Netherlands |
|
||||
|
||||
Wireless Accelerometers
|
||||
|
||||
- <https://micromega-dynamics.com/products/recovib/miniature-vibration-recorder/>
|
||||
|
||||
Several commercial accelerometers are compared in Table [Figure 2](#figure--fig:characteristics-accelerometers) (see (<a href="#citeproc_bib_item_1">Collette et al. 2011</a>)).
|
||||
|
||||
<a id="figure--fig:characteristics-accelerometers"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/inertial_sensors_characteristics_accelerometers.png" caption="<span class='figure-number'>Figure 2: </span>Characteristics of commercially available accelerometers" >}}
|
||||
|
||||
|
||||
## Geophones and Seismometers {#geophones-and-seismometers}
|
||||
|
||||
| Manufacturers | Country |
|
||||
|--------------------------------------------------------------------------------------------|---------|
|
||||
| [Sercel](http://www.sercel.com/products/Pages/seismometers.aspx) | France |
|
||||
| [Wilcoxon](https://wilcoxon.com/) | USA |
|
||||
| [Geospace technologies](https://www.geospace.com/sensors/#) | USA |
|
||||
| [Ion](https://www.iongeo.com/technologies/hardware/seismic-equipment/precision-geophones/) | USA |
|
||||
| [Streckeisen](https://streckeisen.swiss/en/products/overview/) | Swiss |
|
||||
| [Guralp](https://www.guralp.com/products/surface) | UK |
|
||||
| [Nanometric](https://www.nanometrics.ca/products/seismometers) | Canada |
|
||||
|
||||
(<a href="#citeproc_bib_item_1">Collette et al. 2011</a>)
|
||||
|
||||
<a id="figure--fig:characteristics-geophone"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/inertial_sensors_characteristics_geophone.png" caption="<span class='figure-number'>Figure 3: </span>Characteristics of commercially available geophones" >}}
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_1"></a>Collette, C, K Artoos, M Guinchard, S Janssens, P Carmona Fernandez, and C Hauviller. 2011. “Review of Sensors for Low Frequency Seismic Vibration Measurement.” CERN.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_2"></a>Collette, C., S. Janssens, P. Fernandez-Carmona, K. Artoos, M. Guinchard, C. Hauviller, and A. Preumont. 2012. “Review: Inertial Sensors for Low-Frequency Seismic Vibration Measurement.” <i>Bulletin of the Seismological Society of America</i> 102 (4): 1289–1300. doi:<a href="https://doi.org/10.1785/0120110223">10.1785/0120110223</a>.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_3"></a>Collette, C, S Janssens, B Mokrani, L Fueyo-Roza, K Artoos, M Esposito, P Fernandez-Carmona, M Guinchard, and R Leuxe. 2012. “Comparison of New Absolute Displacement Sensors.” In <i>International Conference on Noise and Vibration Engineering (ISMA)</i>.</div>
|
||||
</div>
|
||||
@@ -0,0 +1,26 @@
|
||||
+++
|
||||
title = "Instrumented Hammer"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
category = "equipment"
|
||||
+++
|
||||
|
||||
Tags
|
||||
: [Modal Analysis]({{< relref "modal_analysis.md" >}}), [Force Sensors]({{< relref "force_sensors.md" >}})
|
||||
|
||||
And instrumented hammer consist of a regular hammer with a force sensor fixed at its tip.
|
||||
|
||||
|
||||
## Manufacturers {#manufacturers}
|
||||
|
||||
| Manufacturers | Country |
|
||||
|--------------------------------------------------------------------------------------------------------------|----------|
|
||||
| [PCB](https://www.pcb.com/sensors-for-test-measurement/impact-hammers-electrodynamic-shakers/impact-hammers) | USA |
|
||||
| [DJB](https://www.djbinstruments.com/products/instrumentation/impact-hammers) | UK |
|
||||
| [Dewesoft](https://dewesoft.com/fr/products/interfaces-and-sensors/accelerometers-and-modal-hammers) | Slovenia |
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,21 @@
|
||||
+++
|
||||
title = "Integral Force Feedback"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
: [Active Damping]({{< relref "active_damping.md" >}}), [Piezoelectric Actuators]({{< relref "piezoelectric_actuators.md" >}}), [Force Sensors]({{< relref "force_sensors.md" >}})
|
||||
|
||||
|
||||
## Self-Sensing for perfect collocation {#self-sensing-for-perfect-collocation}
|
||||
|
||||
This can be done with a [Voice Coil Actuator]({{< relref "voice_coil_actuators.md" >}}) (see (<a href="#citeproc_bib_item_2">Verma, Lafarga, and Collette 2020</a>)) or with a [Piezoelectric Actuator]({{< relref "piezoelectric_actuators.md" >}}) (see (<a href="#citeproc_bib_item_1">Jansen, Butler, and Di Filippo 2019</a>)).
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_1"></a>Jansen, Bas, Hans Butler, and Ruben Di Filippo. 2019. “Active Damping of Dynamical Structures Using Piezo Self Sensing.” <i>IFAC-PapersOnLine</i> 52 (15). Elsevier: 543–48.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_2"></a>Verma, Mohit, Vicente Lafarga, and Christophe Collette. 2020. “Perfect Collocation Using Self-Sensing Electromagnetic Actuator: Application to Vibration Control of Flexible Structures.” <i>Sensors and Actuators a: Physical</i> 313: 112210. doi:<a href="https://doi.org/10.1016/j.sna.2020.112210">10.1016/j.sna.2020.112210</a>.</div>
|
||||
</div>
|
||||
@@ -0,0 +1,19 @@
|
||||
+++
|
||||
title = "Interaction Analysis"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
Two main ways to evaluate the interaction:
|
||||
|
||||
- [Relative Gain Array]({{< relref "relative_gain_array.md" >}})
|
||||
- [Structured Singular Value]({{< relref "structured_singular_value.md" >}})
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,105 @@
|
||||
+++
|
||||
title = "Interferometers"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
category = "equipment"
|
||||
+++
|
||||
|
||||
Tags
|
||||
: [Position Sensors]({{< relref "position_sensors.md" >}}), [Optics]({{< relref "optics.md" >}})
|
||||
|
||||
|
||||
## Manufacturers {#manufacturers}
|
||||
|
||||
| Manufacturers | Country |
|
||||
|--------------------------------------------------------------------------------------------------------------|-------------|
|
||||
| [Attocube](http://www.attocube.com/) | Germany |
|
||||
| [Zygo](https://www.zygo.com/?/met/markets/stageposition/zmi/) | USA |
|
||||
| [Smaract](https://www.smaract.com/interferometry) | Germany |
|
||||
| [Qutools](https://www.qutools.com/qudis/) | Germany |
|
||||
| [Renishaw](https://www.renishaw.com/en/fibre-optic-laser-encoder-products--6594) | UK |
|
||||
| [Sios](https://sios-de.com/products/length-measurement/laser-interferometer/) | Germany |
|
||||
| [Keysight](https://www.keysight.com/en/pc-1000000393%3Aepsg%3Apgr/laser-heads?nid=-536900395.0&cc=FR&lc=fre) | USA |
|
||||
| [Optics11](https://optics11.com/) | Netherlands |
|
||||
| [Prodrive](https://prodrive-technologies.com/motion/products/interferometer/) | Netherlands |
|
||||
| [Agito](https://agito-akribis.com/voice-coil-motors/) | |
|
||||
|
||||
|
||||
## Reviews {#reviews}
|
||||
|
||||
(<a href="#citeproc_bib_item_2">Ducourtieux 2018</a>, <a href="#citeproc_bib_item_2">2018</a>; <a href="#citeproc_bib_item_1">Bobroff 1993</a>, <a href="#citeproc_bib_item_1">1993</a>; <a href="#citeproc_bib_item_5">Thurner et al. 2015</a>, <a href="#citeproc_bib_item_5">2015</a>; <a href="#citeproc_bib_item_4">Loughridge and Abramovitch 2013</a>)
|
||||
|
||||
|
||||
## Effect of Refractive Index - Environmental Units {#effect-of-refractive-index-environmental-units}
|
||||
|
||||
The measured distance is proportional to the refractive index of the air that depends on several quantities as shown in [Table 1](#table--tab:index-air) (Taken from (<a href="#citeproc_bib_item_5">Thurner et al. 2015</a>)).
|
||||
|
||||
<a id="table--tab:index-air"></a>
|
||||
<div class="table-caption">
|
||||
<span class="table-number"><a href="#table--tab:index-air">Table 1</a>:</span>
|
||||
Dependence of Refractive Index \(n\) of Air from Temperature \(T\), pressure \(p\), Humidity \(h\), and CO2 content \(x_c\). Taken around \(T = 20^oC\), \(p=101kPa\), \(h = 50\%\), \(x_c = 400 ppm\) and \(\lambda = 1530nm\)
|
||||
</div>
|
||||
|
||||
| Physical Value | Refractive Index Sensitivity | Value |
|
||||
|---------------------------------------|------------------------------|---------------------------|
|
||||
| Temperature \\(T\\) | \\(dn/dT\ (K^{-1})\\) | \\(-9.32\cdot 10^{-7}\\) |
|
||||
| Pressure \\(p\\) | \\(dn/dp\ (mbar^{-1})\\) | \\(2.70\cdot 10^{-7}\\) |
|
||||
| Humidity \\(h\\) | \\(dn/dh\ (\text{%}^{-1})\\) | \\(-8.72\cdot 10^{-9}\\) |
|
||||
| \\(\text{CO}\_2\\) content \\(x\_c\\) | \\(dn/dx\_c\ (ppm^{-1})\\) | \\(1.42\cdot 10^{-10}\\) |
|
||||
| Wavelength \\(\lambda\\) | \\(dn/d\lambda\ (nm^{-1})\\) | \\(-8.59\cdot 10^{-10}\\) |
|
||||
|
||||
In order to limit the measurement uncertainty due to variation of air parameters, an Environmental Unit can be used that typically measures the temperature, pressure and humidity and compensation for the variation of refractive index in real time.
|
||||
|
||||
Typical characteristics of commercial environmental units are shown in [Table 2](#table--tab:environmental-units).
|
||||
|
||||
<a id="table--tab:environmental-units"></a>
|
||||
<div class="table-caption">
|
||||
<span class="table-number"><a href="#table--tab:environmental-units">Table 2</a>:</span>
|
||||
Characteristics of Environmental Units
|
||||
</div>
|
||||
|
||||
| | Temperature (\\(\pm\ ^oC\\)) | Pressure (\\(\pm\ hPa\\)) | Humidity \\(\pm\\\% RH\\) | Wavelength Accuracy (\\(\pm\ \text{ppm}\\)) |
|
||||
|-----------|------------------------------|---------------------------|---------------------------|---------------------------------------------|
|
||||
| Attocube | 0.1 | 1 | 2 | 0.5 |
|
||||
| Renishaw | 0.2 | 1 | 6 | 1 |
|
||||
| Picoscale | 0.2 | 2 | 2 | 1 |
|
||||
|
||||
|
||||
## Interferometer Precision {#interferometer-precision}
|
||||
|
||||
[Figure 1](#figure--fig:position-sensor-interferometer-precision) shows the expected precision as a function of the measured distance due to change of refractive index of the air (taken from (<a href="#citeproc_bib_item_3">Jang and Kim 2017</a>)).
|
||||
|
||||
<a id="figure--fig:position-sensor-interferometer-precision"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/position_sensor_interferometer_precision.png" caption="<span class='figure-number'>Figure 1: </span>Expected precision of interferometer as a function of measured distance" >}}
|
||||
|
||||
|
||||
## Sources of uncertainty {#sources-of-uncertainty}
|
||||
|
||||
Sources of error in laser interferometry are well described in (<a href="#citeproc_bib_item_2">Ducourtieux 2018</a>).
|
||||
|
||||
It includes:
|
||||
|
||||
- Laser Source Stability
|
||||
- Variation of refractive index of air, which is dependent of:
|
||||
- Temperature: \\(K\_T \approx 1 ppmK^{-1}\\)
|
||||
- Pressure: \\(K\_P \approx 0.27 ppm hPa^{-1}\\)
|
||||
- Humidity: \\(K\_{HR} \approx 0.01 ppm \\% RH^{-1}\\)
|
||||
- These errors can partially be compensated using an environmental unit.
|
||||
- Air turbulence ([Figure 2](#figure--fig:interferometers-air-turbulence))
|
||||
- Non linearity
|
||||
|
||||
<a id="figure--fig:interferometers-air-turbulence"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/interferometers_air_turbulence.png" caption="<span class='figure-number'>Figure 2: </span>Effect of air turbulences on measurement stability" >}}
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_1"></a>Bobroff, N. 1993. “Recent Advances in Displacement Measuring Interferometry.” <i>Measurement Science and Technology</i> 4 (9): 907–26. doi:<a href="https://doi.org/10.1088/0957-0233/4/9/001">10.1088/0957-0233/4/9/001</a>.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_2"></a>Ducourtieux, Sebastien. 2018. “Toward High Precision Position Control Using Laser Interferometry: Main Sources of Error.” doi:<a href="https://doi.org/10.13140/rg.2.2.21044.35205">10.13140/rg.2.2.21044.35205</a>.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_3"></a>Jang, Yoon-Soo, and Seung-Woo Kim. 2017. “Compensation of the Refractive Index of Air in Laser Interferometer for Distance Measurement: A Review.” <i>International Journal of Precision Engineering and Manufacturing</i> 18 (12): 1881–90. doi:<a href="https://doi.org/10.1007/s12541-017-0217-y">10.1007/s12541-017-0217-y</a>.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_4"></a>Loughridge, Russell, and Daniel Y. Abramovitch. 2013. “A Tutorial on Laser Interferometry for Precision Measurements.” In <i>2013 American Control Conference</i>. doi:<a href="https://doi.org/10.1109/acc.2013.6580402">10.1109/acc.2013.6580402</a>.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_5"></a>Thurner, Klaus, Francesca Paola Quacquarelli, Pierre-François Braun, Claudio Dal Savio, and Khaled Karrai. 2015. “Fiber-Based Distance Sensing Interferometry.” <i>Applied Optics</i> 54 (10). Optical Society of America: 3051–63.</div>
|
||||
</div>
|
||||
@@ -0,0 +1,36 @@
|
||||
+++
|
||||
title = "Interpolation"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
|
||||
## Band limited interpolation {#band-limited-interpolation}
|
||||
|
||||
<https://en.wikipedia.org/wiki/Whittaker%E2%80%93Shannon_interpolation_formula>
|
||||
|
||||
```matlab
|
||||
rng default
|
||||
```
|
||||
|
||||
```matlab
|
||||
t = 1:10; % Time Vector [s]
|
||||
x = randn(size(t))'; % Sampled data [V]
|
||||
|
||||
ts = linspace(-5,15,600); % New time vector [s]
|
||||
[Ts,T] = ndgrid(ts,t);
|
||||
y = sinc(Ts - T)*x;
|
||||
```
|
||||
|
||||
<a id="figure--fig:interpolation-perfect-example"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/interpolation_perfect_example.png" caption="<span class='figure-number'>Figure 1: </span>Sampled and interpolated signals" >}}
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,105 @@
|
||||
+++
|
||||
title = "IRR and FIR Filters"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
: [Digital Filters]({{< relref "digital_filters.md" >}})
|
||||
|
||||
|
||||
## Comparison {#comparison}
|
||||
|
||||
<div class="table-caption">
|
||||
<span class="table-number">Table 1:</span>
|
||||
Comparison of IRR and FIR Filters
|
||||
</div>
|
||||
|
||||
| | **IIR** | **FIR** |
|
||||
|------------------|--------------------------------|---------------------------------------|
|
||||
| Impulse Response | Infinite | Finite |
|
||||
| Phase | No particular phase | Linear phase possible |
|
||||
| Stability | Can be unstable | Always stable (feedback not involved) |
|
||||
| Analog | Derived from analog filter | Cannot simulate analog response |
|
||||
| Num/Den | Both numerator and denominator | Only has numerators |
|
||||
| Poles/Zeros | Zeros and poles | Only Zeros |
|
||||
|
||||
> Digital filters with finite-duration impulse response (all-zero, or FIR filters) have both advantages and disadvantages compared to infinite-duration impulse response (IIR) filters.
|
||||
>
|
||||
> FIR filters have the following primary advantages:
|
||||
>
|
||||
> - They can have exactly linear phase.
|
||||
> - They are always stable.
|
||||
> - The design methods are generally linear.
|
||||
> - They can be realized efficiently in hardware.
|
||||
> - The filter startup transients have finite duration.
|
||||
>
|
||||
> The primary disadvantage of FIR filters is that they often require a much higher filter order than IIR filters to achieve a given level of performance. Correspondingly, the delay of these filters is often much greater than for an equal performance IIR filter.
|
||||
|
||||
From (<a href="#citeproc_bib_item_1">Shaw and Srinivasan 1990</a>)
|
||||
|
||||
> The FIR are capable of realizing filters with linear phase shift characteristics and furthermore are less susceptible to signal input and filter coefficient quantization effects.
|
||||
> However, their computational demands are excessively large because of the large number of multiplications and additions to be performed at each sampling interval.
|
||||
> The effective time delay corresponding to the linear phase shift is large and would have a destabilizing effect in closed loop applications.
|
||||
> IIR filters are computationally less demanding. The fact that their phase shift characteristics do not vary linearly with frequency is not a disadvantage in this application.
|
||||
> IIR filters are however, more susceptible to signal input and coefficient quantization effects.
|
||||
|
||||
From <https://dsp.stackexchange.com/a/30999>
|
||||
|
||||
> FIR filters are fairly common in some areas of control theory. As they usually incur a lot of added phase/time-delay, they are not really usable in the feedback path of regular control systems, but they are useful when the added phase/time-delay is not affecting the system in an adverse way, or when the particular phase response and time-delay is desired.
|
||||
>
|
||||
> Examples:
|
||||
>
|
||||
> - Feed-forward control. FIR filters are useful for producing filters that approximate arbitrary frequency responses, hence they can be used to shape a reference signal. A typical example is to use an FIR filter with the inverse frequency response of the plant -- trying to counteract the dynamics of the plant in order to get a desired output. Phase/time-delay is not interfering with the stability or performance since the computation can be done offline. FIR filters can often produce higher performance than IIR filters, especially where there are non-minimum phase zeros.
|
||||
|
||||
|
||||
## Moving Average Filter (FIR) {#moving-average-filter--fir}
|
||||
|
||||
A moving average is just a basic FIR filtering.
|
||||
If the moving average is done over `n` samples, the FIR filter's coefficients are then \\([1/n,\ 1/n,\ \dots,\ 1/n]\\).
|
||||
|
||||
For instance:
|
||||
|
||||
```matlab
|
||||
n = 3;
|
||||
|
||||
b = 1/n*ones(n,1);
|
||||
```
|
||||
|
||||
And we can look at the step response of the filter:
|
||||
|
||||
```matlab
|
||||
y = ones(3*n, 1);
|
||||
y(1:n) = 0;
|
||||
|
||||
outhi = filter(b,1,y);
|
||||
|
||||
figure;
|
||||
plot(outhi, 'ko')
|
||||
```
|
||||
|
||||
<a id="figure--fig:fir-moving-average-step-response"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/fir_moving_average_step_response.png" caption="<span class='figure-number'>Figure 1: </span>Step response of the FIR "moving average filter"" >}}
|
||||
|
||||
Let's look at the response of the filter in the frequency domain.
|
||||
|
||||
```matlab
|
||||
Fs = 1e3; % Sampling frequency
|
||||
|
||||
freqz(b,1,[],Fs);
|
||||
```
|
||||
|
||||
<a id="figure--fig:fir-moving-average-frequency-reponse"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/fir_moving_average_frequency_reponse.png" caption="<span class='figure-number'>Figure 2: </span>Frequency response of the moving average filter" >}}
|
||||
|
||||
|
||||
## FIR Design with Matlab {#fir-design-with-matlab}
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_1"></a>Shaw, F. R., and K. Srinivasan. 1990. “Bandwidth Enhancement of Position Measurements Using Measured Acceleration.” <i>Mechanical Systems and Signal Processing</i> 4 (1): 23–38. doi:<a href="https://doi.org/10.1016/0888-3270(90)90038-m">10.1016/0888-3270(90)90038-m</a>.</div>
|
||||
</div>
|
||||
@@ -0,0 +1,211 @@
|
||||
+++
|
||||
title = "Isotropy of Parallel Manipulator"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
: [Stewart Platforms]({{< relref "stewart_platforms.md" >}})
|
||||
|
||||
Here are some notes on the literature about the isotropy of parallel manipulators.
|
||||
|
||||
|
||||
## (<a href="#citeproc_bib_item_9">Tsai and Huang 2003</a>) {#f86766}
|
||||
|
||||
|
||||
## (<a href="#citeproc_bib_item_4">Fassi, Legnani, and Tosi 2005</a>) {#0ac3c3}
|
||||
|
||||
|
||||
## (<a href="#citeproc_bib_item_2">Bandyopadhyay and Ghosal 2008</a>) {#2ab0b0}
|
||||
|
||||
Uses `mathematica` to inverse analytical Jacobian matrix and obtain conditions for isotropy.
|
||||
|
||||
|
||||
## (<a href="#citeproc_bib_item_7">Legnani et al. 2010</a>) {#a75d91}
|
||||
|
||||
|
||||
### Abstract {#abstract}
|
||||
|
||||
A manipulator exhibits an _isotropic behaviour_ when it has the same performances along all the directions of the working space.
|
||||
|
||||
The authors introduce the new concept of _Point of Isotropy_, showing how in some circumstances a non-isotropic manipulator may be transform into an isotropic one simply changing the location of its Tool Center Point (TCP).
|
||||
|
||||
|
||||
### Introduction {#introduction}
|
||||
|
||||
**Kinetostatic** of parallel manipulator can be studied with the following equations:
|
||||
|
||||
\begin{align}
|
||||
\dot{Q} &= J \dot{S} \\\\
|
||||
F\_s &= J^T F\_q \\\\
|
||||
J &= \frac{\partial Q}{\partial S}
|
||||
\end{align}
|
||||
|
||||
where \\(J\\) is the Jacobian matrix which relates the "gripper" velocity \\(\dot{S}\\) with those of the actuators \\(\dot{Q}\\), as well as the forces \\(F\_q\\) exerted by the actuators with the forces/torques \\(F\_s\\) applied to the gripper.
|
||||
|
||||
|
||||
### Isotropy {#isotropy}
|
||||
|
||||
A robot is called **isotropic** if at least in one point of the working space some of its kinetostatic properties are homogeneous with respect to all the directions.
|
||||
|
||||
<div class="definition">
|
||||
|
||||
- **Velocity isotropy**: A manipulator is isotropic with respect to the velocity, if it can perform the same velocity along all the directions.
|
||||
- **Force isotropy**: A manipulator is isotropic with respect to the force, if it can exert the same force along all the directions.
|
||||
- **Stiffness isotropy**: A manipulator is isotropic with respect to the stiffness, if the deflection of the TCP produced by a force applied to it is always in the direction of the force and its magnitude is independent of the force direction.
|
||||
- **Mass isotropy**: A manipulator is isotropic with respect to the equivalent gripper mass, if the acceleration of the TCP produced by a force applied to it is always in the direction of the force and its magnitude is independent of the force direction.
|
||||
|
||||
</div>
|
||||
|
||||
A 6-DoF spatial manipulator is isotropic with respect to velocity if:
|
||||
|
||||
\begin{equation}
|
||||
J^T J = \diag(j\_{xx}, j\_{yy}, j\_{zz}, j\_{\alpha\alpha}, j\_{\beta\beta}, j\_{\gamma\gamma}) \quad \text{with} \quad j\_{xx}=j\_{yy}=j\_{zz} \quad \text{and} \quad j\_{\alpha\alpha}=j\_{\beta\beta}=j\_{\gamma\gamma}
|
||||
\end{equation}
|
||||
|
||||
The same condition holds for the force isotropy.
|
||||
|
||||
Assuming that the actuators are locked and that they are the only sources of compliance, the force \\(F\_s\\) to be applied to the end effector to produce a motion \\(dS\\) is:
|
||||
|
||||
\begin{equation}
|
||||
F\_s = \underbrace{J^T K\_q J}\_{K\_s} dS \quad K\_q = \diag(\dots,k\_i,\dots)
|
||||
\end{equation}
|
||||
|
||||
where \\(k\_i\\) is the stiffness of the ith actuator.
|
||||
A general 6-DoF manipulator is **fully isotropic** with respect to stiffness if:
|
||||
|
||||
\begin{equation}
|
||||
K\_s = \diag(k\_{xx}, k\_{yy}, k\_{zz}, k\_{\alpha\alpha}, k\_{\beta\beta}, k\_{\gamma\gamma}) \quad \text{with} \quad k\_{xx}=k\_{yy}=k\_{zz}=k\_x \quad \text{and} \quad k\_{\alpha\alpha}=k\_{\beta\beta}=k\_{\gamma\gamma}=k\_\phi
|
||||
\end{equation}
|
||||
|
||||
In this case, it results:
|
||||
|
||||
\begin{equation}
|
||||
F = k\_x dX, \quad T = k\_\phi d\phi
|
||||
\end{equation}
|
||||
|
||||
where \\(k\_x\\) is the translation stiffness and \\(k\_\phi\\) is the rotation stiffness.
|
||||
This means that:
|
||||
|
||||
- forces \\(F\\) applied to the TCP do not produce rotations \\(d\phi\\) but only translations \\(dX\\)
|
||||
- the translation is proportional to the force and parallel to it regardless to the force direction
|
||||
- torques \\(T\\) applied to the TCP do not produce translations \\(dx\\) but only rotations \\(d\phi\\)
|
||||
- the rotation is proportional to the torque and occurs around the same axis as the applied torque
|
||||
|
||||
In this special case in which all the actuators are identical to each other, and therefore have the same stiffness \\(k\\), we have \\(K\_s = kJ^TJ\\) and the condition number of the matrix \\(J^TJ\\) can be investigated instead of that of \\(J^T K\_q J\\).
|
||||
In this case the isotropy for velocity, force and stiffness are achieve simultaneously.
|
||||
|
||||
A manipulator is **partially isotropic** if:
|
||||
|
||||
\begin{equation}
|
||||
k\_{xx} = k\_{yy} \neq k\_{zz} \quad \text{and/or} \quad k\_{\alpha\alpha} = k\_{\beta\beta} \neq k\_{\gamma\gamma}
|
||||
\end{equation}
|
||||
|
||||
|
||||
### Point of isotropy {#point-of-isotropy}
|
||||
|
||||
A parallel manipulator as a "point of isotropy" if it exists at least one point of its end effector for which the isotropy condition is achieved.
|
||||
|
||||
Then conditions are given to find an isotropic TCP.
|
||||
|
||||
|
||||
### Application to the Stewart platform {#application-to-the-stewart-platform}
|
||||
|
||||
Conditions can be applied to the Stewart platform and isotropy points can be found.
|
||||
|
||||
|
||||
## (<a href="#citeproc_bib_item_8">Tong et al. 2011</a>) {#6febd5}
|
||||
|
||||
A parallel manipulator consists of a movable platform, a fixed base, and six struts, each with a linear actuator.
|
||||
The struts are partitioned into two groups: the first group with strut 1,3,5 and the second group with strut 2,4,6.
|
||||
The attached points of each strut are uniformly spaced on the circumferences of two circles on the movable platform and the fixed base, respectively.
|
||||
The three struts in each group are rotational symmetry and repeat every 120 deg.
|
||||
This parallel manipulator with this kind of configurations are defined as generalized symmetric Gough-Stewart parallel manipulators (GSGSPMs).
|
||||
|
||||
<a id="figure--fig:tong11-architecture-gsgspm"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/tong11_architecture_gsgspm.png" caption="<span class='figure-number'>Figure 1: </span>Architecture of a GSGSPM" >}}
|
||||
|
||||
A compliance center exists consequentially for any GSGSPMs.
|
||||
At the compliance center, a GSGSPM is uncoupled.
|
||||
|
||||
|
||||
## (<a href="#citeproc_bib_item_6">Legnani et al. 2012</a>) {#633281}
|
||||
|
||||
A manipulator is called partially of totally decoupled if the general movements of the robot can be subdivided in elementary tasks, each actuated by one or a group of actuators.
|
||||
Decoupling may be referred to the end effector coordinate or to local kinetostatic properties related to the Jacobian.
|
||||
|
||||
- Total decoupling occurs when the Jacobian is diagonal
|
||||
- Partial decoupling is when the Jacobian is triangular
|
||||
- Block decoupling is when the Jacobian is block diagonal
|
||||
|
||||
<a id="figure--fig:legnani12-isotropic-pkm"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/legnani12_isotropic_pkm.png" caption="<span class='figure-number'>Figure 2: </span>An isotropic PKM" >}}
|
||||
|
||||
<div class="sum">
|
||||
|
||||
The paper discusses the concepts of isotropy and decoupling in n-DoF PKM.
|
||||
The role of different Jacobian matrices in the isotropy, decoupling and in general mobility analysis of manipulators is recalled.
|
||||
It is highlighted how isotropy and decoupling may be achieved for pure translational manipulators in the whole workspace while rotational manipulators maybe decoupling in only one configuration.
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
## (<a href="#citeproc_bib_item_3">Ding et al. 2014</a>) {#623b74}
|
||||
|
||||
|
||||
## (<a href="#citeproc_bib_item_1">Afzali-Far 2016</a>) {#6e127c}
|
||||
|
||||
> The problem of dynamic isotropy, as an optimal design solution for hexapods, is also addressed in this dissertation.
|
||||
> **Dynamic isotropy is a condition in which all eigenfrequencies of a robot are equal**.
|
||||
|
||||
|
||||
## (<a href="#citeproc_bib_item_10">Wu et al. 2018</a>) {#033041}
|
||||
|
||||
Isotropy => J\*J' = a\*I
|
||||
|
||||
- Stiffness isotropy = static isotropy
|
||||
- velocity isotropy = kinematic isotropy
|
||||
|
||||
They also proved that the symmetric generalized Stewart platform at a neutral position could be fully decoupled by adjusting the payload's center of mass to coincide with its **compliance center**. (<a href="#citeproc_bib_item_8">Tong et al. 2011</a>)
|
||||
|
||||
Dynamic isotropy => same resonance frequency for all suspension modes.
|
||||
|
||||
<a id="figure--fig:wu18-stewart-picture"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/wu18_stewart_picture.png" caption="<span class='figure-number'>Figure 3: </span>Optimized Stewart platform" >}}
|
||||
|
||||
|
||||
## (<a href="#citeproc_bib_item_11">Yang et al. 2020</a>) {#e39296}
|
||||
|
||||
<div class="sum">
|
||||
|
||||
This paper proposes a novel concept, namely _isotropic control_ to solve the problem of having identical performance in all DoF.
|
||||
Dynamic equations of parallel mechanisms with base excitation are established and analyzed.
|
||||
An isotropic control framework is then synthesized in modal space.
|
||||
The multi-DoF system is transformed into multi identical single-DoF systems.
|
||||
Under the framework of isotropic control, parallel mechanisms obtain an identical frequency response for all modes.
|
||||
An identical corner frequency, active damping, and rate of low-frequency transmissibility are achieved for all modes.
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
## (<a href="#citeproc_bib_item_5">Kang et al. 2020</a>) {#0812ce}
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_1"></a>Afzali-Far, Behrouz. 2016. “Vibrations and Dynamic Isotropy in Hexapods-Analytical Studies.” Lund University.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_2"></a>Bandyopadhyay, Sandipan, and Ashitava Ghosal. 2008. “An Algebraic Formulation of Kinematic Isotropy and Design of Isotropic 6-6 Stewart Platform Manipulators.” <i>Mechanism and Machine Theory</i> 43 (5): 591–616. doi:<a href="https://doi.org/10.1016/j.mechmachtheory.2007.05.003">10.1016/j.mechmachtheory.2007.05.003</a>.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_3"></a>Ding, Boyin, Benjamin S. Cazzolato, Richard M. Stanley, Steven Grainger, and John J. Costi. 2014. “Stiffness Analysis and Control of a Stewart Platform-Based Manipulator with Decoupled Sensor-Actuator Locations for Ultrahigh Accuracy Positioning under Large External Loads.” <i>Journal of Dynamic Systems, Measurement, and Control</i> 136 (6). doi:<a href="https://doi.org/10.1115/1.4027945">10.1115/1.4027945</a>.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_4"></a>Fassi, Irene, Giovanni Legnani, and Diego Tosi. 2005. “Geometrical Conditions for the Design of Partial or Full Isotropic Hexapods.” <i>Journal of Robotic Systems</i> 22 (10): 507–18. doi:<a href="https://doi.org/10.1002/rob.20074">10.1002/rob.20074</a>.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_5"></a>Kang, Shengzheng, Hongtao Wu, Shengdong Yu, Yao Li, Xiaolong Yang, and Jiafeng Yao. 2020. “Modeling and Control of a Six-Axis Parallel Piezo-Flexural Micropositioning Stage with Cross-Coupling Hysteresis Nonlinearities.” In <i>2020 IEEE/ASME International Conference on Advanced Intelligent Mechatronics (AIM)</i>, 1350–55. IEEE.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_6"></a>Legnani, G., I. Fassi, H. Giberti, S. Cinquemani, and D. Tosi. 2012. “A New Isotropic and Decoupled 6-Dof Parallel Manipulator.” <i>Mechanism and Machine Theory</i> 58: 64–81. doi:<a href="https://doi.org/10.1016/j.mechmachtheory.2012.07.008">10.1016/j.mechmachtheory.2012.07.008</a>.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_7"></a>Legnani, Giovanni, D Tosi, I Fassi, Hermes Giberti, and Simone Cinquemani. 2010. “The ‘Point of Isotropy’ and Other Properties of Serial and Parallel Manipulators.” <i>Mechanism and Machine Theory</i> 45 (10). Elsevier: 1407–23.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_8"></a>Tong, Zhizhong, Jingfeng He, Hongzhou Jiang, and Guangren Duan. 2011. “Optimal Design of a Class of Generalized Symmetric Gough-Stewart Parallel Manipulators with Dynamic Isotropy and Singularity-Free Workspace.” <i>Robotica</i> 30 (2): 305–14. doi:<a href="https://doi.org/10.1017/s0263574711000531">10.1017/s0263574711000531</a>.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_9"></a>Tsai, K.Y., and K.D. Huang. 2003. “The Design of Isotropic 6-Dof Parallel Manipulators Using Isotropy Generators.” <i>Mechanism and Machine Theory</i> 38 (11): 1199–1214. doi:<a href="https://doi.org/10.1016/s0094-114x(03)00067-3">10.1016/s0094-114x(03)00067-3</a>.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_10"></a>Wu, Ying, Kaiping Yu, Jian Jiao, Dengqing Cao, Weichao Chi, and Jie Tang. 2018. “Dynamic Isotropy Design and Analysis of a Six-Dof Active Micro-Vibration Isolation Manipulator on Satellites.” <i>Robotics and Computer-Integrated Manufacturing</i> 49: 408–25. doi:<a href="https://doi.org/10.1016/j.rcim.2017.08.003">10.1016/j.rcim.2017.08.003</a>.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_11"></a>Yang, Xiaolong, Hongtao Wu, Yao Li, Shengzheng Kang, Bai Chen, Huimin Lu, Carman K. M. Lee, and Ping Ji. 2020. “Dynamics and Isotropic Control of Parallel Mechanisms for Vibration Isolation.” <i>IEEE/ASME Transactions on Mechatronics</i> 25 (4): 2027–34. doi:<a href="https://doi.org/10.1109/tmech.2020.2996641">10.1109/tmech.2020.2996641</a>.</div>
|
||||
</div>
|
||||
@@ -0,0 +1,120 @@
|
||||
+++
|
||||
title = "Jacobian"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
|
||||
## Jacobian Matrices of a Parallel Manipulator {#jacobian-matrices-of-a-parallel-manipulator}
|
||||
|
||||
From (<a href="#citeproc_bib_item_1">Taghirad 2013</a>):
|
||||
|
||||
> The Jacobian matrix not only reveals the **relation between the joint variable velocities of a parallel manipulator to the moving platform linear and angular velocities**, it also constructs the transformation needed to find the **actuator forces from the forces and moments acting on the moving platform**.
|
||||
|
||||
(NO_ITEM_DATA:merlet06_jacob_manip_condit_number_accur_paral_robot)
|
||||
|
||||
|
||||
## Computing the Jacobian Matrix {#computing-the-jacobian-matrix}
|
||||
|
||||
How to derive the Jacobian matrix is well explained in chapter 4 of (<a href="#citeproc_bib_item_1">Taghirad 2013</a>) ([notes]({{< relref "taghirad13_paral.md" >}})).
|
||||
|
||||
Consider parallel manipulator shown in [Figure 1](#figure--fig:jacobian-geometry) (it represents a Stewart platform).
|
||||
|
||||
Kinematic loop closures are:
|
||||
|
||||
\begin{equation}
|
||||
{}^A\bm{O}\_B = {}^A\bm{a}\_i + l\_i \hat{\bm{s}}\_i + {}^A\bm{b}\_i
|
||||
\end{equation}
|
||||
|
||||
Which can be written as:
|
||||
|
||||
\begin{equation}
|
||||
{}^A\bm{p} = {}^A\bm{a}\_i + l\_i {}^A\hat{\bm{s}}\_i + {}^A\bm{R}\_B {}^B\bm{b}\_i
|
||||
\end{equation}
|
||||
|
||||
with
|
||||
|
||||
- \\({}^A\bm{p} = {}^A\bm{O}\_B\\) the position vector of the moving platform w.r.t. frame \\(\\{\bm{A}\\}\\)
|
||||
- \\({}^A\bm{R}\_B\\) the rotation matrix of the moving platform
|
||||
- \\({}^A\bm{a}\_i\\) the position vector of the \\(i\\)'th limb of the fixed platform w.r.t. frame \\(\\{\bm{A}\\}\\)
|
||||
- \\({}^B\bm{b}\_i\\) the position vector of the \\(i\\)'th limb of the moving platform w.r.t. frame \\(\\{\bm{B}\\}\\)
|
||||
- \\(\bm{\hat{s}}\_i\\) the limb unit vector
|
||||
- \\(l\_i\\) is the limb length
|
||||
|
||||
By taking the time derivative, we obtain the following **Velocity Loop Closures**:
|
||||
|
||||
\begin{equation}
|
||||
{}^A\hat{\bm{s}}\_i {}^A\bm{v}\_p + ({}^A\bm{b}\_i \times \hat{\bm{s}}\_i) {}^A\bm{\omega} = \dot{l}\_i \label{eq:velocity\_loop\_closure}
|
||||
\end{equation}
|
||||
|
||||
<a id="figure--fig:jacobian-geometry"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/jacobian_geometry.png" caption="<span class='figure-number'>Figure 1: </span>Example of parallel manipulator with defined frames and vectors" >}}
|
||||
|
||||
|
||||
## Velocities of joints and of moving platform {#velocities-of-joints-and-of-moving-platform}
|
||||
|
||||
The Jacobian matrix links the joint variable velocities to the moving platform linear and angular velocities.
|
||||
|
||||
\begin{equation}
|
||||
\dot{\bm{q}} = \bm{J} \dot{\bm{\mathcal{X}}}
|
||||
\end{equation}
|
||||
|
||||
with \\(\bm{q} = \left[ q\_1, q\_2, \ldots, q\_m \right]^T\\) the vector of actuated joint coordinates (linear displacement of an actuator prismatic joint or angular rotation of an actuated revolute joint) and \\(\bm{\mathcal{X}} = \left[ x\_1, x\_2, \ldots, x\_n \right]^T\\) the vector of moving platform motion variables (position or orientation).
|
||||
|
||||
From equation \ref{eq:velocity\_loop\_closure}, we have:
|
||||
|
||||
\begin{equation}
|
||||
\bm{J} = \begin{bmatrix}
|
||||
{{}^A\hat{\bm{s}}\_1}^T & ({}^A\bm{b}\_1 \times {}^A\hat{\bm{s}}\_1)^T \\\\
|
||||
{{}^A\hat{\bm{s}}\_2}^T & ({}^A\bm{b}\_2 \times {}^A\hat{\bm{s}}\_2)^T \\\\
|
||||
{{}^A\hat{\bm{s}}\_3}^T & ({}^A\bm{b}\_3 \times {}^A\hat{\bm{s}}\_3)^T \\\\
|
||||
{{}^A\hat{\bm{s}}\_4}^T & ({}^A\bm{b}\_4 \times {}^A\hat{\bm{s}}\_4)^T \\\\
|
||||
{{}^A\hat{\bm{s}}\_5}^T & ({}^A\bm{b}\_5 \times {}^A\hat{\bm{s}}\_5)^T \\\\
|
||||
{{}^A\hat{\bm{s}}\_6}^T & ({}^A\bm{b}\_6 \times {}^A\hat{\bm{s}}\_6)^T
|
||||
\end{bmatrix}
|
||||
\end{equation}
|
||||
|
||||
And therefore \\(\bm{J}\\) then **depends only** on:
|
||||
|
||||
- \\({}^A\hat{\bm{s}}\_i\\) the orientation of the limbs
|
||||
- \\({}^A\bm{b}\_i\\) the position of the joints with respect to \\(O\_B\\) and express in \\(\\{\bm{A}\\}\\).
|
||||
|
||||
For the platform in [Figure 1](#figure--fig:jacobian-geometry), we have:
|
||||
|
||||
\begin{equation}
|
||||
\begin{bmatrix} \dot{l}\_1 \\\ \dot{l}\_2 \\\ \dot{l}\_3 \\\ \dot{l}\_4 \\\ \dot{l}\_5 \\\ \dot{l}\_6 \end{bmatrix} =
|
||||
\begin{bmatrix}
|
||||
{{}^A\hat{\bm{s}}\_1}^T & ({}^A\bm{b}\_1 \times {}^A\hat{\bm{s}}\_1)^T \\\\
|
||||
{{}^A\hat{\bm{s}}\_2}^T & ({}^A\bm{b}\_2 \times {}^A\hat{\bm{s}}\_2)^T \\\\
|
||||
{{}^A\hat{\bm{s}}\_3}^T & ({}^A\bm{b}\_3 \times {}^A\hat{\bm{s}}\_3)^T \\\\
|
||||
{{}^A\hat{\bm{s}}\_4}^T & ({}^A\bm{b}\_4 \times {}^A\hat{\bm{s}}\_4)^T \\\\
|
||||
{{}^A\hat{\bm{s}}\_5}^T & ({}^A\bm{b}\_5 \times {}^A\hat{\bm{s}}\_5)^T \\\\
|
||||
{{}^A\hat{\bm{s}}\_6}^T & ({}^A\bm{b}\_6 \times {}^A\hat{\bm{s}}\_6)^T
|
||||
\end{bmatrix}
|
||||
\begin{bmatrix} {}^Av\_x \\\ {}^Av\_y \\\ {}^Av\_z \\\ {}^A\omega\_x \\\ {}^A\omega\_y \\\ {}^A\omega\_z \end{bmatrix}
|
||||
\end{equation}
|
||||
|
||||
|
||||
## Static Forces in Parallel Manipulators {#static-forces-in-parallel-manipulators}
|
||||
|
||||
The **Jacobian matrix** constructs the **transformation needed to find the actuator forces** \\(\bm{\tau}\\) **from the wrench acting on the moving platform** \\(\bm{\mathcal{F}}\\):
|
||||
|
||||
\begin{equation}
|
||||
\bm{\mathcal{F}} = \bm{J}^T \bm{\tau}
|
||||
\end{equation}
|
||||
|
||||
in which \\(\bm{\tau} = [f\_1, f\_2, \cdots, f\_6]^T\\) is the vector of actuator forces, and \\(\bm{\mathcal{F}} = [\bm{f}, \bm{n}]^T\\) is the 6D wrench applied by the manipulator to the environment at the point \\(\bm{O}\_B\\).
|
||||
|
||||
Note that it is here assumed that the forces are static and **along the limb axis** \\(\hat{\bm{s}}\_i\\).
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_1"></a>Taghirad, H. 2013. <i>Parallel Robots : Mechanics and Control</i>. Boca Raton, FL: CRC Press.</div>
|
||||
<div class="csl-entry">NO_ITEM_DATA:merlet06_jacob_manip_condit_number_accur_paral_robot</div>
|
||||
</div>
|
||||
@@ -0,0 +1,42 @@
|
||||
+++
|
||||
title = "Laplace Transform"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
: [Continuous Transfer Functions]({{< relref "continuous_transfer_functions.md" >}})
|
||||
|
||||
|
||||
## Definition {#definition}
|
||||
|
||||
Laplace transform:
|
||||
|
||||
\begin{equation}
|
||||
\boxed{F(s) = \mathcal{L}{f(t)} = \int\_0^\infty e^{-st} f(t) dt}
|
||||
\end{equation}
|
||||
|
||||
|
||||
## Laplace transform of signals {#laplace-transform-of-signals}
|
||||
|
||||
<https://en.wikipedia.org/wiki/List_of_Laplace_transforms>
|
||||
|
||||
|
||||
## Laplace transform of functions {#laplace-transform-of-functions}
|
||||
|
||||
<https://en.wikibooks.org/wiki/Signals_and_Systems/Table_of_Laplace_Transforms>
|
||||
|
||||
|
||||
## Solving Linear Differential equations {#solving-linear-differential-equations}
|
||||
|
||||
|
||||
### Mechanical System {#mechanical-system}
|
||||
|
||||
|
||||
### Electrical System {#electrical-system}
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,61 @@
|
||||
+++
|
||||
title = "Linear Brushless Motor"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
: [Motors]({{< relref "motors.md" >}})
|
||||
|
||||
|
||||
## Ironcore VS Ironless {#ironcore-vs-ironless}
|
||||
|
||||
- Ironcore: more torque/force density
|
||||
- Ironless: less cogging
|
||||
|
||||
|
||||
## Manufacturers {#manufacturers}
|
||||
|
||||
| Manufacturers | Country |
|
||||
|---------------------------------------------------------------------------------------------------------------------------------------------------|-------------|
|
||||
| [Tecnotion](https://www.tecnotion.com/product-category/linear-motors/) | Netherlands |
|
||||
| [Prodrive](https://prodrive-technologies.com/motion/products/linear-motors-and-actuators/) | Netherlands |
|
||||
| [Etel](https://www.etel.ch/linear-motors/ilf-plus/) | Switzerland |
|
||||
| [TDS PP](https://www.tds-pp.com/en/products/linear-actuators/) | Switzerland |
|
||||
| [Aerotech](https://www.aerotech.com/motion-and-positioning/motors-products/) | USA |
|
||||
| [Celera Motion](https://www.celeramotion.com/applimotion/products/direct-drive-frameless-linear-motors/) | USA |
|
||||
| [Akribis](https://akribis-sys.com/products/linear-motors) | USA |
|
||||
| [Moticont](https://www.moticont.com/brushless-motor.htm) | USA |
|
||||
| [Airex](https://airex.com/) | USa |
|
||||
| [Hiwin](https://www.hiwin.de/fr/Produits/c/3952) | Germany |
|
||||
| [Baumeuller](https://www.baumueller.com/en/products/motors/linear-motors) | Germany |
|
||||
| [Rexroth](https://www.boschrexroth.com/en/xc/products/product-groups/electric-drives-and-controls/motors-and-gearboxes/synchronous-linear-motors) | Germany |
|
||||
| [Kollmorgen](https://www.kollmorgen.com/fr-fr/products/motors/direct-drive/direct-drive-linear/moteurs-lin%C3%A9aires-accouplement-direct/) | Germany |
|
||||
| [PBA Systems](https://www.pbasystems.com.sg/product-category/precision-robotics/direct-drive-motors/) | Singapore |
|
||||
| [Akribis](https://www.akribis-sys.de/en/produkte/1/linear-motors/) | Singapore |
|
||||
| [Chieftek](http://www.chieftek.com/product-lm.asp) | Taiwan |
|
||||
| [Yaskawa](https://www.yaskawa.com/products/motion/sigma-7-servo-products/linear-servo-motors) | Japan |
|
||||
|
||||
Vacuum compatible linear motors:
|
||||
|
||||
| Manufacturers | Country |
|
||||
|--------------------------------------------------------------------------------------------|-------------|
|
||||
| [Tecnotion](https://www.tecnotion.com/product-category/linear-motors/) | Netherlands |
|
||||
| [Prodrive](https://prodrive-technologies.com/motion/products/linear-motors-and-actuators/) | Netherlands |
|
||||
| [TDS PP](https://www.tds-pp.com/en/product/vacuum-compatible-linear-motors/) | Switzerland |
|
||||
|
||||
|
||||
## Stages including Linear Brushless Motor {#stages-including-linear-brushless-motor}
|
||||
|
||||
| Manufacturers | Country |
|
||||
|------------------------------------------------------------------------------------------------------------------|---------|
|
||||
| [H2tech](https://www.h2wtech.com/category/single-rail-stages#productInfo1) | USA |
|
||||
| [Chieftek](http://www.chieftek.com/product-cls.asp) | Taiwan |
|
||||
| [Transtechnik](https://www.transtechnik.fr/range/gamme-de-moteurs-lineaires-avec-mecanique-de-guidage-integree/) | France |
|
||||
| [Monticont](http://www.pwr-con.com/ecommerce/default.asp?cat=Linear+Brushless+Motor+Driven+Stage) | |
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,31 @@
|
||||
+++
|
||||
title = "Linear Guides"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
category = "equipment"
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
|
||||
## Manufacturers {#manufacturers}
|
||||
|
||||
| Manufacturers | Country |
|
||||
|----------------------------------------------------------------------------------------------------------------------------|-------------|
|
||||
| [Bosch Rexroth](https://www.boschrexroth.com/en/xc/products/product-groups/linear-motion-technology/topics/linear-guides/) | Germany |
|
||||
| [THK](https://www.thk.com/?q=eng/node/231) | Japan |
|
||||
| [PM](https://www.pm.nl/en) | Netherlands |
|
||||
|
||||
|
||||
## Different Technologies {#different-technologies}
|
||||
|
||||
{{< figure src="/ox-hugo/linear_bearing_comp.png" caption="<span class='figure-number'>Figure 1: </span>Comparison of different linear guides" >}}
|
||||
|
||||
{{< figure src="/ox-hugo/linear_bearing_cross_section.png" caption="<span class='figure-number'>Figure 2: </span>Cross section of considered linear guides" >}}
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,24 @@
|
||||
+++
|
||||
title = "Linear variable differential transformers"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
category = "equipment"
|
||||
+++
|
||||
|
||||
Tags
|
||||
: [Position Sensors]({{< relref "position_sensors.md" >}})
|
||||
|
||||
|
||||
## Manufacturers {#manufacturers}
|
||||
|
||||
| Manufacturers | Country |
|
||||
|-----------------------------------------------------------------------------------------------------|-------------|
|
||||
| [Micro-Epsilon](https://www.micro-epsilon.com/displacement-position-sensors/inductive-sensor-lvdt/) | Germany |
|
||||
| [Keyence](https://www.keyence.eu/products/measure/contact-distance-lvdt/gt2/index.jsp) | USA |
|
||||
| [Althen](https://www.althensensors.com/sensors/linear-position-sensors/lvdt-sensors/) | Netherlands |
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,33 @@
|
||||
+++
|
||||
title = "Lock-in Amplifier"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
|
||||
## Synchronous Detection {#synchronous-detection}
|
||||
|
||||
- (<a href="#citeproc_bib_item_1">Francais 2003</a>)
|
||||
- (<a href="#citeproc_bib_item_3">Zurich 2016</a>)
|
||||
- (<a href="#citeproc_bib_item_2">Horowitz 2015</a>)
|
||||
|
||||
|
||||
## Manufacturers {#manufacturers}
|
||||
|
||||
| Manufacturers | Country |
|
||||
|----------------------------------------------------------------------------|---------|
|
||||
| [Femto](https://www.femto.de/en/products/lock-in-amplifiers.html) | Germany |
|
||||
| [Zurick Instruments](https://www.zhinst.com/europe/en/lock-in-amplifiers) | Swiss |
|
||||
| [Stanford Research Systems](https://www.thinksrs.com/products/lockin.html) | |
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_1"></a>Francais, Olivier. 2003. “Detection Synchrone.”</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_2"></a>Horowitz, Paul. 2015. <i>The Art of Electronics - Third Edition</i>. New York, NY, USA: Cambridge University Press.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_3"></a>Zurich, Instruments. 2016. “Principles of Lock-in Detection and the State of the Art.” Zurich Instruments.</div>
|
||||
</div>
|
||||
@@ -0,0 +1,22 @@
|
||||
+++
|
||||
title = "Loop-Shaping"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
|
||||
|
||||
Loop Gain
|
||||
|
||||
Typical wanted loop gain shape
|
||||
|
||||
Tools for loop-shaping
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,196 @@
|
||||
+++
|
||||
title = "Mass Spring Damper Systems"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
: [Tuned Mass Damper]({{< relref "tuned_mass_damper.md" >}})
|
||||
|
||||
|
||||
## One Degree of Freedom {#one-degree-of-freedom}
|
||||
|
||||
|
||||
### Model and equation of motion {#model-and-equation-of-motion}
|
||||
|
||||
Let's consider [Figure 1](#figure--fig:mass-spring-damper-system) where:
|
||||
|
||||
- \\(m\\) is the mass in [kg]
|
||||
- \\(k\\) is the spring stiffness in [N/m]
|
||||
- \\(c\\) is the damping coefficient in [N/(m/s)]
|
||||
- \\(F\\) is the actuator force in [N]
|
||||
- \\(F\_d\\) is external force applied to the mass in [N]
|
||||
- \\(w\\) is ground motion
|
||||
- \\(x\\) is the absolute mass motion
|
||||
|
||||
<a id="figure--fig:mass-spring-damper-system"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/mass_spring_damper_system.png" caption="<span class='figure-number'>Figure 1: </span>Mass Spring Damper System" >}}
|
||||
|
||||
Transmissibility:
|
||||
|
||||
\begin{equation}
|
||||
\frac{x}{w}(s) = \frac{c s + k}{m s^2 + c s + k} = \frac{2 \xi \frac{s}{\omega\_0} + 1}{\frac{s^2}{\omega\_0^2} + 2 \xi \frac{s}{\omega\_0} + 1}
|
||||
\end{equation}
|
||||
|
||||
Compliance:
|
||||
|
||||
\begin{equation}
|
||||
\frac{x}{F}(s) = \frac{x}{F\_d}(s) = \frac{1}{m s^2 + c s + k} = \frac{1/k}{\frac{s^2}{\omega\_0^2} + 2 \xi \frac{s}{\omega\_0} + 1}
|
||||
\end{equation}
|
||||
|
||||
with:
|
||||
|
||||
- \\(\omega\_0 = \sqrt{k/m}\\) the natural frequency in [rad/s]
|
||||
- \\(\xi = \frac{1}{2} \frac{c}{\sqrt{km}}\\) the damping ratio [unit-less]
|
||||
|
||||
A quality factor \\(Q\\) can also be defined:
|
||||
|
||||
\begin{equation}
|
||||
Q = \frac{1}{2\xi}
|
||||
\end{equation}
|
||||
|
||||
This corresponds to the amplification at the natural frequency \\(\omega\_0\\).
|
||||
|
||||
|
||||
### Matlab model {#matlab-model}
|
||||
|
||||
```matlab
|
||||
%% Mechanical properties
|
||||
m = 1; % Mobile mass [kg]
|
||||
k = 1e6; % stiffness [N/m]
|
||||
xi = 0.1; % Modal Damping
|
||||
|
||||
c = 2*xi*sqrt(k*m);
|
||||
```
|
||||
|
||||
```matlab
|
||||
%% Compliance: Transfer function from F [N] to x [m]
|
||||
Gf = 1/(m*s^2 + c*s + k);
|
||||
|
||||
%% Transmissibility: Transfer function from w [m] to x [m]
|
||||
Gw = (c*s + k)/(m*s^2 + c*s + k);
|
||||
```
|
||||
|
||||
<a id="figure--fig:mass-spring-damper-1dof-compliance"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/mass_spring_damper_1dof_compliance.png" caption="<span class='figure-number'>Figure 2: </span>1dof Mass spring damper system - Compliance" >}}
|
||||
|
||||
<a id="figure--fig:mass-spring-damper-1dof-transmissibility"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/mass_spring_damper_1dof_transmissibility.png" caption="<span class='figure-number'>Figure 3: </span>1dof Mass spring damper system - Transmissibility" >}}
|
||||
|
||||
|
||||
## Two Degrees of Freedom {#two-degrees-of-freedom}
|
||||
|
||||
|
||||
### Model and equation of motion {#model-and-equation-of-motion}
|
||||
|
||||
Consider the two degrees of freedom mass spring damper system of [Figure 4](#figure--fig:mass-spring-damper-2dof).
|
||||
|
||||
<a id="figure--fig:mass-spring-damper-2dof"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/mass_spring_damper_2dof.png" caption="<span class='figure-number'>Figure 4: </span>2 DoF Mass Spring Damper system" >}}
|
||||
|
||||
We can write the Newton's second law of motion to the two masses:
|
||||
|
||||
\begin{align}
|
||||
m\_2 s^2 x\_2 &= F\_2 + (k\_2 + c\_2 s) (x\_1 - x\_2) \\\\
|
||||
m\_1 s^2 x\_1 &= F\_1 + (k\_1 + c\_1 s) (x\_0 - x\_1) + (k\_2 + c\_2 s) (x\_2 - x\_1)
|
||||
\end{align}
|
||||
|
||||
The goal is to have \\(x\_1\\) and \\(x\_2\\) as a function of \\(F\_1\\), \\(F\_2\\) and \\(x\_0\\).
|
||||
|
||||
When, we have:
|
||||
|
||||
\begin{equation}
|
||||
\boxed{x\_1 = \frac{(m\_2 s^2 + c\_2 s + k\_2) F\_1 + (k\_1 + c\_1 s) (m\_2 s^2 + c\_2 s + k\_2) x\_0 + (k\_2 + c\_2 s) F\_2}{(m\_1 s^2 + c\_1 s + k\_1)(m\_2 s^2 + c\_2 s + k\_2) + m\_2 s^2 (c\_2 s + k\_2)}}
|
||||
\end{equation}
|
||||
|
||||
\begin{equation}
|
||||
\boxed{x\_2 = \frac{(c\_2s + k\_2)F\_1 + (c\_2s + k\_2)(k\_1 + c\_1 s) x\_0 + (m\_1 s^2 + c\_1 s + k\_1 + c\_2 s + k\_2) F\_2}{(m\_1 s^2 + c\_1 s + k\_1)(m\_2 s^2 + c\_2 s + k\_2) + m\_2 s^2 (c\_2 s + k\_2)}}
|
||||
\end{equation}
|
||||
|
||||
We can see that the effects of \\(x\_0\\) and \\(F\_1\\) are related with a factor \\((c\_1 s + k\_1)\\).
|
||||
|
||||
If we are interested by \\(x\_2-x\_1\\):
|
||||
|
||||
\begin{equation}
|
||||
(x\_2 - x1) = \frac{- m\_2 s^2 F\_1 - (m\_2 s^2)(k\_1 + c\_1 s) x\_0 + (m\_1 s^2 + c\_1 s + k\_1) F\_2}{(m\_1 s^2 + c\_1 s + k\_1)(m\_2 s^2 + c\_2 s + k\_2) + m\_2 s^2 (c\_2 s + k\_2)}
|
||||
\end{equation}
|
||||
|
||||
| | x1 | x2 | x2-x1 |
|
||||
|----|-----------------------------|----------------------------|--------------------|
|
||||
| x0 | (c1s + k1)(m2s2 + c2s + k2) | (c1s + k1)(c2s + k2) | - m2s2\*(k1 + c1s) |
|
||||
| F1 | m2s2 + c2s + k2 | c2s + k2 | - m2s2 |
|
||||
| F2 | c2s + k2 | m1s2 + c1s + k1 + c2s + k2 | m1s2 + c1s + k1 |
|
||||
|
||||
|
||||
### Matlab model {#matlab-model}
|
||||
|
||||
```matlab
|
||||
%% Values for the 2dof Mass-Spring-Damper system
|
||||
m1 = 5e2; % [kg]
|
||||
k1 = 2e6; % [N/m]
|
||||
c1 = 2*0.01*sqrt(m1*k1); % [N/(m/s)]
|
||||
|
||||
m2 = 10; % [kg]
|
||||
k2 = 1e6; % [N/m]
|
||||
c2 = 2*0.01*sqrt(m2*k2); % [N/(m/s)]
|
||||
```
|
||||
|
||||
```matlab
|
||||
%% Transfer functions
|
||||
G_x0_to_x1 = (c1*s + k1)*(m2*s^2 + c2*s + k2)/((m1*s^2 + c1*s + k1)*(m2*s^2 + c2*s + k2) + m2*s^2*(c2*s + k2));
|
||||
G_F1_to_x1 = (m2*s^2 + c2*s + k2)/((m1*s^2 + c1*s + k1)*(m2*s^2 + c2*s + k2) + m2*s^2*(c2*s + k2));
|
||||
G_F2_to_x1 = (c2*s + k2)/((m1*s^2 + c1*s + k1)*(m2*s^2 + c2*s + k2) + m2*s^2*(c2*s + k2));
|
||||
|
||||
G_x0_to_x2 = (c1*s + k1)*(c2*s + k2)/((m1*s^2 + c1*s + k1)*(m2*s^2 + c2*s + k2) + m2*s^2*(c2*s + k2));
|
||||
G_F1_to_x2 = (c2*s + k2)/((m1*s^2 + c1*s + k1)*(m2*s^2 + c2*s + k2) + m2*s^2*(c2*s + k2));
|
||||
G_F2_to_x2 = (m1*s^2 + c1*s + k1 + c2*s + k2)/((m1*s^2 + c1*s + k1)*(m2*s^2 + c2*s + k2) + m2*s^2*(c2*s + k2));
|
||||
|
||||
G_x0_to_d2 = -m2*s^2*(c1*s + k1)/((m1*s^2 + c1*s + k1)*(m2*s^2 + c2*s + k2) + m2*s^2*(c2*s + k2));
|
||||
G_F1_to_d2 = -m2*s^2/((m1*s^2 + c1*s + k1)*(m2*s^2 + c2*s + k2) + m2*s^2*(c2*s + k2));
|
||||
G_F2_to_d2 = (m1*s^2 + c1*s + k1)/((m1*s^2 + c1*s + k1)*(m2*s^2 + c2*s + k2) + m2*s^2*(c2*s + k2));
|
||||
```
|
||||
|
||||
From [Figure 5](#figure--fig:mass-spring-damper-2dof-x0-bode-plots), we can see that:
|
||||
|
||||
- the low frequency transmissibility is equal to one
|
||||
- the high frequency transmissibility to the second mass is smaller than to the first mass
|
||||
|
||||
<a id="figure--fig:mass-spring-damper-2dof-x0-bode-plots"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/mass_spring_damper_2dof_x0_bode_plots.png" caption="<span class='figure-number'>Figure 5: </span>Transfer functions from x0 to x1 and x2 (Transmissibility)" >}}
|
||||
|
||||
The transfer function from \\(F\_1\\) to the mass displacements ([Figure 6](#figure--fig:mass-spring-damper-2dof-F1-bode-plots)) has the same shape than the transmissibility ([Figure 5](#figure--fig:mass-spring-damper-2dof-x0-bode-plots)).
|
||||
|
||||
However, the low frequency gain is now equal to \\(1/k\_1\\).
|
||||
|
||||
<a id="figure--fig:mass-spring-damper-2dof-F1-bode-plots"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/mass_spring_damper_2dof_F1_bode_plots.png" caption="<span class='figure-number'>Figure 6: </span>Transfer functions from F1 to x1 and x2" >}}
|
||||
|
||||
The transfer functions from \\(F\_2\\) to the mass displacements are shown in [Figure 7](#figure--fig:mass-spring-damper-2dof-F2-bode-plots):
|
||||
|
||||
- the motion \\(x\_1\\) is smaller than \\(x\_2\\)
|
||||
|
||||
<a id="figure--fig:mass-spring-damper-2dof-F2-bode-plots"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/mass_spring_damper_2dof_F2_bode_plots.png" caption="<span class='figure-number'>Figure 7: </span>Transfer functions from F2 to x1 and x2" >}}
|
||||
|
||||
|
||||
## Simple analysis of measured dynamics {#simple-analysis-of-measured-dynamics}
|
||||
|
||||
|
||||
### Models {#models}
|
||||
|
||||
<a id="figure--fig:mass-spring-damper-flex-above"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/mass_spring_damper_flex_above.png" caption="<span class='figure-number'>Figure 8: </span>2 DoF Mass Spring Damper system" >}}
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,30 @@
|
||||
+++
|
||||
title = "Materials"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
|
||||
## Metals {#metals}
|
||||
|
||||
<div class="table-caption">
|
||||
<span class="table-number">Table 1:</span>
|
||||
Properties of common metals
|
||||
</div>
|
||||
|
||||
| Material | Young's Modulus (GPA) | Thermal Expansion (\\(\mu m/m/^oC\\)) | Density | Thermal Conductivity (W/mK) |
|
||||
|-----------------|-----------------------|---------------------------------------|---------|-----------------------------|
|
||||
| Aluminum | 68 | 23.6 | 2.7 | 167 |
|
||||
| Copper | 110 | 20 | 8.53 | 120 |
|
||||
| Invar | 148 | 1.3 | 8 | 10.2 |
|
||||
| Stainless Steel | 190 | 10.8 | 8 | 17 |
|
||||
| Titanium | 108 | 8.6 | 4.5 | 16.3 |
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,116 @@
|
||||
+++
|
||||
title = "Matlab"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
: [Simulink]({{< relref "simulink.md" >}})
|
||||
|
||||
|
||||
## Resources on Matlab {#resources-on-matlab}
|
||||
|
||||
Books:
|
||||
|
||||
- (<a href="#citeproc_bib_item_3">Higham 2017</a>)
|
||||
- (<a href="#citeproc_bib_item_1">Attaway 2018</a>)
|
||||
- (<a href="#citeproc_bib_item_5">OverFlow 2018</a>)
|
||||
- (<a href="#citeproc_bib_item_4">Johnson 2010</a>)
|
||||
- (<a href="#citeproc_bib_item_2">Hahn and Valentine 2016</a>)
|
||||
|
||||
|
||||
## Useful Commands {#useful-commands}
|
||||
|
||||
| Command | Description |
|
||||
|------------------------|-------------------------------------------------------------|
|
||||
| `desktop` | Open the Matlab Desktop |
|
||||
| `workspace` | Open the Workspace |
|
||||
| `who` | List all variables in the workspace |
|
||||
| `edit <filename>` | Edit the file using Matlab Desktop (usefully for debugging) |
|
||||
| `help <function>` | |
|
||||
| `doc <function>` | |
|
||||
| `checkcode <filename>` | Check Matlab code files for possible problems |
|
||||
| `preferences` | Open Matlab preferences |
|
||||
|
||||
|
||||
## Tips {#tips}
|
||||
|
||||
- Folder that starts with a `+` are automatically added to the path.
|
||||
It is useful to add function inside such folder.
|
||||
Then the function is accessible with `folder.function`.
|
||||
|
||||
|
||||
## Figures {#figures}
|
||||
|
||||
|
||||
### Bode Plot {#bode-plot}
|
||||
|
||||
|
||||
## Snippets {#snippets}
|
||||
|
||||
|
||||
### Do not show legend for one plot {#do-not-show-legend-for-one-plot}
|
||||
|
||||
```matlab
|
||||
figure;
|
||||
hold on;
|
||||
plot(x, y1, 'DisplayName, 'lengendname');
|
||||
plot(x, y2, 'HandleVisibility', 'off');
|
||||
hold off;
|
||||
legend('Location', 'northeast');
|
||||
```
|
||||
|
||||
|
||||
## Linux Installation {#linux-installation}
|
||||
|
||||
If a single user is using the Matlab installation on the machine:
|
||||
|
||||
```bash
|
||||
sudo chown -R $LOGNAME: /usr/local/MATLAB/R2017b
|
||||
```
|
||||
|
||||
Then, Toolboxes can be installed by the user without any problem.
|
||||
|
||||
To install Toolboxes, the best is to Download the Matlab installer from mathworks and just select the wanted toolboxes.
|
||||
|
||||
|
||||
## Used Toolboxes {#used-toolboxes}
|
||||
|
||||
Nice functions:
|
||||
|
||||
- <https://github.com/jmrplens/SetFigPaper>
|
||||
- <https://github.com/altmany/export_fig>
|
||||
- Matlab's `exportgraphics`
|
||||
- `vfit3` ([link](https://www.sintef.no/projectweb/vectorfitting/)): used to identify transfer functions
|
||||
|
||||
|
||||
## Debug Scripts {#debug-scripts}
|
||||
|
||||
<https://fr.mathworks.com/help/matlab/debugging-code.html>
|
||||
<https://stackoverflow.com/questions/22853116/how-to-debug-matlab-code-without-gui>
|
||||
|
||||
| Command | Effect |
|
||||
|------------|--------------------------------------------------------------|
|
||||
| `dbclear` | Remove breakpoints |
|
||||
| `dbcont` | Resume execution |
|
||||
| `dbdown` | Reverse dbup workspace shift |
|
||||
| `dbquit` | Quit debug mode |
|
||||
| `dbstack` | Function call stack |
|
||||
| `dbstatus` | List all breakpoints |
|
||||
| `dbstep` | Execute next executable line from current breakpoint |
|
||||
| `dbstop` | Set breakpoints for debugging |
|
||||
| `dbtype` | Display file with line numbers |
|
||||
| `dbup` | Shift current workspace to workspace of caller in debug mode |
|
||||
| `keyboard` | Give control to keyboard |
|
||||
| `echo` | Display statements during function execution |
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_1"></a>Attaway, Stormy. 2018. <i>MATLAB : a Practical Introduction to Programming and Problem Solving</i>. Amsterdam: Butterworth-Heinemann.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_2"></a>Hahn, Brian, and Daniel T Valentine. 2016. <i>Essential MATLAB for Engineers and Scientists</i>. Academic Press.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_3"></a>Higham, Desmond. 2017. <i>MATLAB Guide</i>. Philadelphia: Society for Industrial and Applied Mathematics.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_4"></a>Johnson, Richard K. 2010. <i>The Elements of MATLAB Style</i>. Cambridge University Press.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_5"></a>OverFlow, Stack. 2018. <i>MATLAB Notes for Professionals</i>. GoalKicker.com.</div>
|
||||
</div>
|
||||
@@ -0,0 +1,14 @@
|
||||
+++
|
||||
title = "Metrology"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,14 @@
|
||||
+++
|
||||
title = "Modal Analysis"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
: [Inertial Sensors]({{< relref "inertial_sensors.md" >}}), [Shaker]({{< relref "shaker.md" >}})
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,14 @@
|
||||
+++
|
||||
title = "Modal Decomposition"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
: [Modal Analysis]({{< relref "modal_analysis.md" >}})
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,14 @@
|
||||
+++
|
||||
title = "Model Predictive Control"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,14 @@
|
||||
+++
|
||||
title = "Motion Control"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,100 @@
|
||||
+++
|
||||
title = "Motor Commutation"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
: [Motors]({{< relref "motors.md" >}})
|
||||
|
||||
|
||||
## Sensors {#sensors}
|
||||
|
||||
- Hall effect sensors
|
||||
- [Encoders]({{< relref "encoders.md" >}})
|
||||
|
||||
|
||||
## Electrical Commutation {#electrical-commutation}
|
||||
|
||||
For a 3 phase motor (linear or angular), the force constant is a function of the position.
|
||||
The motor can be designed in such a way that the relation is close to a sinusoidal function or a trapezoidal function.
|
||||
|
||||
<a id="figure--fig:motor-emf-waveform"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/motor_emf_waveform.png" caption="<span class='figure-number'>Figure 1: </span>EMF Waveform" >}}
|
||||
|
||||
|
||||
### "Hard" commutation {#hard-commutation}
|
||||
|
||||
<a id="figure--fig:motor-hard-commutation"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/motor_hard_commutation.png" caption="<span class='figure-number'>Figure 2: </span>By changing the direction of the current at the zero force positions of each coil (dashed), an almost constant force-constant of the total actuator is obtained." >}}
|
||||
|
||||
|
||||
### Sinusoidal Commutation {#sinusoidal-commutation}
|
||||
|
||||
<a id="figure--fig:motor-sin-commutation"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/motor_sin_commutation.png" caption="<span class='figure-number'>Figure 3: </span>Three phase commutation with a sinusoidal control of the currents in each coil segment (\\(I\_R, I\_S, I\_T\\)) in phase with their spatial sinusoidal force-constant \\(B l = k\\) values (\\(k\_R, k\_S, k\_T\\)) results in a force per segment with a spatial frequency that is double the original spatial frequency of the coils. The resulting total force of the three coil segments is the sum of the values of the force in each segment and is independent of the position." >}}
|
||||
|
||||
|
||||
## Transformations Theory {#transformations-theory}
|
||||
|
||||
|
||||
### Clarke Transformation {#clarke-transformation}
|
||||
|
||||
<a id="figure--fig:motor-clarke-transformation"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/motor_clarke_transformation.png" caption="<span class='figure-number'>Figure 4: </span>Clarke transformation" >}}
|
||||
|
||||
\begin{align}
|
||||
I\_{\alpha} &= \frac{2}{3}(I\_a) - \frac{1}{3}(I\_b - I\_c) \\\\
|
||||
I\_{\beta} &= \frac{2}{\sqrt{3}}(I\_b - I\_c)
|
||||
\end{align}
|
||||
|
||||
Usually:
|
||||
|
||||
- \\(I\_{\alpha} = I\_a\\): the \\(\alpha\\) axis and the \\(a\\) axis are aligned
|
||||
- \\(I\_a + I\_b + I\_c = 0\\) because of the "star" configuration of the 3-phase motor
|
||||
|
||||
In that case, the equations simplifies to:
|
||||
|
||||
\begin{align}
|
||||
I\_{\alpha} &= I\_a \\\\
|
||||
I\_{\beta} &= \frac{1}{\sqrt{3}}(I\_a + 2 I\_b)
|
||||
\end{align}
|
||||
|
||||
|
||||
### Inverse Clarke Transformation {#inverse-clarke-transformation}
|
||||
|
||||
\begin{align}
|
||||
I\_a &= I\_{\alpha} \\\\
|
||||
I\_b &= \frac{-1}{2} I\_{\alpha} + \frac{\sqrt{3}}{2} I\_{\beta} \\\\
|
||||
I\_c &= \frac{-1}{2} I\_{\alpha} - \frac{\sqrt{3}}{2} I\_{\beta}
|
||||
\end{align}
|
||||
|
||||
|
||||
### Park Transformation {#park-transformation}
|
||||
|
||||
<a id="figure--fig:motor-park-transformation"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/motor_park_transformation.png" caption="<span class='figure-number'>Figure 5: </span>Park transformation" >}}
|
||||
|
||||
\begin{align}
|
||||
I\_{d} &= I\_{\alpha} \cos(\theta) + I\_{\beta} \sin(\theta) \\\\
|
||||
I\_{q} &= I\_{\beta} \cos(\theta) - I\_{\alpha} \sin(\theta)
|
||||
\end{align}
|
||||
|
||||
|
||||
### Inverse Park Transformation {#inverse-park-transformation}
|
||||
|
||||
\begin{align}
|
||||
I\_{\alpha} &= I\_d \cos(\theta) - I\_q \sin(\theta) \\\\
|
||||
I\_{\beta} &= I\_d \sin(\theta) + I\_q \cos(\theta)
|
||||
\end{align}
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,32 @@
|
||||
+++
|
||||
title = "Motors"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
Reviews:
|
||||
|
||||
- (<a href="#citeproc_bib_item_1">Murugesan 1981</a>)
|
||||
|
||||
|
||||
## Linear Motors {#linear-motors}
|
||||
|
||||
- [Piezoelectric Actuators]({{< relref "piezoelectric_actuators.md" >}})
|
||||
- [Voice Coil Actuators]({{< relref "voice_coil_actuators.md" >}})
|
||||
- [Linear Brushless Motor]({{< relref "linear_brushless_motor.md" >}})
|
||||
|
||||
|
||||
## Angular Motors {#angular-motors}
|
||||
|
||||
- [Stepper Motor]({{< relref "stepper_motor.md" >}})
|
||||
- [Torque Motor]({{< relref "torque_motor.md" >}})
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_1"></a>Murugesan, S. 1981. “An Overview of Electric Motors for Space Applications.” <i>IEEE Transactions on Industrial Electronics and Control Instrumentation</i> IECI-28 (4): 260–65. doi:<a href="https://doi.org/10.1109/TIECI.1981.351050">10.1109/TIECI.1981.351050</a>.</div>
|
||||
</div>
|
||||
@@ -0,0 +1,42 @@
|
||||
+++
|
||||
title = "Multivariable Control"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
: [Norms]({{< relref "norms.md" >}})
|
||||
|
||||
A very nice book about Multivariable Control is (<a href="#citeproc_bib_item_1">Skogestad and Postlethwaite 2007</a>)
|
||||
|
||||
|
||||
## Transfer functions for Multi-Input Multi-Output systems {#transfer-functions-for-multi-input-multi-output-systems}
|
||||
|
||||
{{< figure src="/ox-hugo/mimo_tf.png" >}}
|
||||
|
||||
\\[ T\_i = -\frac{u}{d\_i} = (I + KG)^{-1} KG \\]
|
||||
\\[ T\_o = -\frac{p\_o}{d\_o} = (I + GK)^{-1} GK \\]
|
||||
\\[ S\_i = \frac{p\_i}{d\_i} = (I + KG)^{-1} \\]
|
||||
\\[ S\_o = \frac{y}{d\_o} = (I + GK)^{-1} \\]
|
||||
|
||||
|
||||
## Measures of interaction {#measures-of-interaction}
|
||||
|
||||
- Interaction index (for \\(2 \times 2\\) plant):
|
||||
\\[ \phi = \frac{g\_{12}g\_{21}}{g\_{11}g\_{22}} \\]
|
||||
When \\(\phi\\) is close to zero, this means there is no interaction.
|
||||
- The **relative gain array** of a square matrix:
|
||||
\\[ \text{RGA}(G) \triangleq G \times ( G^{-1})^T \\]
|
||||
|
||||
|
||||
## Stability {#stability}
|
||||
|
||||
- **Characteristic Loci**: Eigenvalues of \\(G(j\omega)\\) plotted in the complex plane
|
||||
- **Generalized Nyquist Criterion**: If \\(G(s)\\) has \\(p\_0\\) unstable poles, then the closed-loop system with return ratio \\(kG(s)\\) is stable if and only if the characteristic loci of \\(kG(s)\\), taken together, encircle the point \\(-1\\), \\(p\_0\\) times anti-clockwise, assuming there are no hidden modes
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_1"></a>Skogestad, S., and I. Postlethwaite. 2007. <i>Multivariable Feedback Control: Analysis and Design - Second Edition</i>. John Wiley.</div>
|
||||
</div>
|
||||
@@ -0,0 +1,14 @@
|
||||
+++
|
||||
title = "Nano Active Stabilization System"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,27 @@
|
||||
+++
|
||||
title = "Negative Stiffness"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
Negative stiffness can be used to reduce the effective stiffness of a [Flexible Joints]({{< relref "flexible_joints.md" >}}).
|
||||
|
||||
It is well explained in (<a href="#citeproc_bib_item_1">Werner 2010</a>).
|
||||
|
||||
<a id="figure--fig:negative-stiffness-schematic"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/negative_stiffness_schematic.png" caption="<span class='figure-number'>Figure 1: </span>Example of a negative stiffness. The proloaded compression spring `Cc` is used to counteract the spring `Cs`" >}}
|
||||
|
||||
<a id="figure--fig:negative-stiffness-architecture"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/negative_stiffness_architecture.png" caption="<span class='figure-number'>Figure 2: </span>The following architecture is proposed to make the implementation easier" >}}
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_1"></a>Werner, C. 2010. “A 3D Translation Stage for Metrological AFM.” Phd Thesis 1 (Research TU/e / Graduation TU/e), Mechanical Engineering; Technische Universiteit Eindhoven. doi:<a href="https://doi.org/10.6100/IR692270">10.6100/IR692270</a>.</div>
|
||||
</div>
|
||||
@@ -0,0 +1,16 @@
|
||||
+++
|
||||
title = "Nonlinear Control"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
Lecture about Nonlinear Systems at MIT ([link](http://web.mit.edu/nsl/www/videos/lectures.html)).
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,187 @@
|
||||
+++
|
||||
title = "Systems and Signals Norms"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
\\[ \SI{1}{\meter\per\second} \\]
|
||||
|
||||
Resources:
|
||||
|
||||
- (NO_ITEM_DATA:skogestad05_multiv_feedb_contr)
|
||||
- (<a href="#citeproc_bib_item_2">Toivonen 2002</a>)
|
||||
- (<a href="#citeproc_bib_item_3">Zhang 2011</a>)
|
||||
|
||||
|
||||
## Definition {#definition}
|
||||
|
||||
<div class="definition">
|
||||
|
||||
A norm of \\(e\\) (which may be a vector, matrix, signal of system) is a real number, denoted \\(\\|e\\|\\), that satisfies the following properties:
|
||||
|
||||
1. Non-negative: \\(\\|e\\| \ge 0\\)
|
||||
2. Positive: \\(\\|e\\| = 0 \Longleftrightarrow e = 0\\)
|
||||
3. Homogeneous: \\(\\|\alpha \cdot e\\| = |\alpha| \cdot \\|e\\|\\) for all complex scalars \\(\alpha\\)
|
||||
4. Triangle inequality: \\(\\|e\_1 + e\_2\\| \le \\|e\_1\\| + \\|e\_2\\|\\)
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
## Vector Norms {#vector-norms}
|
||||
|
||||
- **Vector 1-norm (Sum Norm)**:
|
||||
\\[ \\|a\\|\_1 \triangleq \sum\_i |a\_i| \\]
|
||||
- **Vector 2-norm (Euclidean Norm)**:
|
||||
\\[ \\|a\\|\_2 \triangleq \sqrt{\sum\_i |a\_i|^2} \\]
|
||||
- **Vector p-norm**:
|
||||
\\[ \\|a\\|\_p \triangleq \left( \sum\_i |a\_i|^p \right)^{1/p} \\]
|
||||
- **Vector \\(\infty\text{-norm}\\) (Max Norm)**: ()
|
||||
\\[ \\|a\\|\_\infty \triangleq \max\_i |a\_i| \\]
|
||||
|
||||
|
||||
## Matrix Norms {#matrix-norms}
|
||||
|
||||
<div class="definition">
|
||||
|
||||
A norm on a matrix \\(\\|A\\|\\) is a matrix norm if, in addition to the four norm properties, it also satisfies the multiplicative property:
|
||||
\\[ \\|AB\\| \le \\|A\\| \cdot \\|B\\| \\]
|
||||
|
||||
</div>
|
||||
|
||||
- **Sum matrix norm**:
|
||||
\\[ \\|A\\|\_\text{sum} \triangleq \sum\_{i,j} |a\_{ij}| \\]
|
||||
- **Frobenius matrix norm (Euclidean Norm)**:
|
||||
\\[ \\|A\\|\_F \triangleq \sqrt{\sum\_{i,j} |a\_{ij}|^2} = \sqrt{\text{tr}(A^H A)} \\]
|
||||
- **Max element norm**: (which is not a _matrix_ norm)
|
||||
\\[ \\|A\\|\_\text{max} \triangleq \max\_{i,j} |a\_{ij}| \\]
|
||||
|
||||
|
||||
## Induced Matrix Norms {#induced-matrix-norms}
|
||||
|
||||
Induced matrix norms are important because of their close relationship to signal amplification in systems.
|
||||
|
||||
Consider the figure below where \\(w\\) is the input vector, \\(z\\) the output vector and where the "amplification" or "gain" of the matrix \\(A\\) is defined by the ration \\(\\|z\\|/\\|w\\|\\).
|
||||
|
||||
{{< figure src="/ox-hugo/induced_matrix_norm.png" >}}
|
||||
|
||||
The maximum gain for all possible input directions is given by the **induced norm**:
|
||||
\\[ \\|A\\|\_{ip} \triangleq \max\_{w \neq 0} \frac{\\|Aw\\|\_p}{\\|w\\|\_p} \\]
|
||||
|
||||
Thus, the induced norm gives the largest possible "amplification" of the matrix.
|
||||
The following equivalent definition is also used:
|
||||
\\[ \\|A\\|\_{ip} = \max\_{\\|w\\|\_p \le 1} \\|Aw\\|\_p \\]
|
||||
|
||||
|
||||
## Signal Norms {#signal-norms}
|
||||
|
||||
For signals, we may compute the norm in two steps:
|
||||
|
||||
1. "Sum up" the channels at a given time using a vector norm.
|
||||
For a scalar, we simply take the absolute value.
|
||||
2. "Sum up" in time using a temporal norm.
|
||||
|
||||
We normally use the same p-norm both for the vector and the signal.
|
||||
|
||||
- **1-norm in time (Integral Absolute Error)**:
|
||||
\\[ \\|e(t)\\|\_1 = \int\_{-\infty}^{\infty} \sum\_i |e\_i(\tau)| d\tau \\]
|
||||
- **2-norm in time (Quadratic Norm)**:
|
||||
\\[ \\|e(t)\\|\_2 = \sqrt{\int\_{-\infty}^{\infty} \sum\_i |e\_i(\tau)|^2 d\tau} \\]
|
||||
- **\\(\infty\text{-norm}\\) in time (Peak value in time)**:
|
||||
\\[ \\|e(t)\\|\_\infty = \max\_\tau \left( \max\_i |e\_i(\tau)| \right) \\]
|
||||
- **Power-Norm or RMS-Norm**:
|
||||
\\[ \\|e(t)\\|\_\text{pow} = \lim\_{T\to \infty} \sqrt{\frac{1}{2T} \int\_{-T}^T \sum\_i |e\_i(\tau)|^2 d\tau} \\]
|
||||
|
||||
|
||||
## Signal Interpretation of Various System Norms {#signal-interpretation-of-various-system-norms}
|
||||
|
||||
Consider a system \\(G\\) with input \\(d\\) and output \\(e\\), such that:
|
||||
\\[ e = G d \\]
|
||||
|
||||
For performance, we may want the output signal \\(e\\) to be "small" for any allowed input signals \\(d\\).
|
||||
We therefore need to specify:
|
||||
|
||||
1. What \\(d\\) are allowed. (Which set does \\(d\\) belong to?)
|
||||
Some possible inputs signal sets are:
|
||||
- \\(d(t)\\) consists of impulses \\(\delta(t)\\).
|
||||
- These generate step changes in the states.
|
||||
- \\(d(t) = \sin(\omega t)\\) with fixed frequency
|
||||
- \\(d(t)\\) is bounded in energy \\(\\|d(t)\\|\_2 \le 1\\)
|
||||
- \\(d(t)\\) is bounded in power \\(\\|d(t)\\|\_\text{pow} \le 1\\)
|
||||
- \\(d(t)\\) is bounded in magnitude \\(\\|d(t)\\|\_\infty \le 1\\)
|
||||
2. What we mean by "small". (Which norm should be use for \\(e\\)?)
|
||||
To measure the output signal, we may consider the following norms:
|
||||
- 2-norm (energy): \\(\\|e(t)\\|\_2\\)
|
||||
- \\(\infty\text{-norm}\\) (peak magnitude): \\(\\|e(t)\\|\_\infty\\)
|
||||
- Power: \\(\\|e(t)\\|\_\text{pow}\\)
|
||||
|
||||
We now consider which system norms result from the definition of input classes and output norms ([Table 1](#table--tab:system-norms)).
|
||||
|
||||
<a id="table--tab:system-norms"></a>
|
||||
<div class="table-caption">
|
||||
<span class="table-number"><a href="#table--tab:system-norms">Table 1</a>:</span>
|
||||
System norms for sets of inputs signals and three different output norms
|
||||
</div>
|
||||
|
||||
| | \\(\delta(t)\\) | \\(\sin(\omega t)\\) | \\(\vert\vert d \vert\vert\_2\\) | \\(\vert\vert d \vert\vert\_\infty\\) | \\(\vert\vert d \vert\vert\_\text{pow}\\) |
|
||||
|-------------------------------------------|------------------------------------------|--------------------------------------------------------|------------------------------------------|----------------------------------------------|-------------------------------------------|
|
||||
| \\(\vert\vert e \vert\vert\_2\\) | \\(\vert\vert G(s) \vert\vert\_2\\) | \\(\infty\\) | \\(\vert\vert G(s) \vert\vert\_\infty\\) | \\(\infty\\) | \\(\infty\\) |
|
||||
| \\(\vert\vert e \vert\vert\_\infty\\) | \\(\vert\vert g(t) \vert\vert\_\infty\\) | \\(\overline{\sigma}(G(j\omega))\\) | \\(\vert\vert G(s) \vert\vert\_2\\) | \\(\vert\vert g(t) \vert\vert\_1\\) | \\(\infty\\) |
|
||||
| \\(\vert\vert e \vert\vert\_\text{pow}\\) | 0 | \\(\frac{1}{\sqrt{2}} \overline{\sigma}(G(j\omega))\\) | 0 | \\(\le \vert\vert G(s) \vert\vert\_\infty\\) | \\(\vert\vert G(s) \vert\vert\_\infty\\) |
|
||||
|
||||
|
||||
## System Norms {#system-norms}
|
||||
|
||||
|
||||
### \\(\mathcal{H}\_\infty\\) Norm {#mathcal-h-infty-norm}
|
||||
|
||||
<div class="exampl">
|
||||
|
||||
Consider a proper linear stable system \\(G(s)\\).
|
||||
The \\(\mathcal{H}\_\infty\\) norm is the peak value of its maximum singular value:
|
||||
\\[ \\|G(s)\\|\_\infty \triangleq \max\_{\omega} \overline{\sigma}(G(j\omega)) \\]
|
||||
|
||||
</div>
|
||||
|
||||
In terms of signals, the \\(\mathcal{H}\_\infty\\) norm can be interpreted as follows:
|
||||
|
||||
- it is the worst case steady-state gain for sinusoidal inputs at any frequency
|
||||
- it is equal to the 2-norm in the time domain:
|
||||
\\[ \\|G(s)\\|\_\infty = \max\_{d(t)} \frac{\\|e(t)\\|\_2 \neq 0}{\\|d(t)\\|\_2} = \max\_{\\|d(t)\\|\_2 = 1} \\|e(t)\\|\_2 \\]
|
||||
|
||||
|
||||
### \\(\mathcal{H}\_2\\) Norm {#mathcal-h-2-norm}
|
||||
|
||||
<div class="exampl">
|
||||
|
||||
Consider a strictly proper system \\(G(s)\\).
|
||||
The \\(\mathcal{H}\_2\\) norm is:
|
||||
|
||||
\begin{align\*}
|
||||
\\|G(s)\\|\_2 &\triangleq \sqrt{\frac{1}{2\pi} \int\_{-\infty}^{\infty} \text{tr}\left(G(j\omega)^HG(j\omega)\right) d\omega} \\\\
|
||||
&= \sqrt{\frac{1}{2\pi} \int\_{-\infty}^{\infty} \sum\_i {\sigma\_i}^2(G(j\omega)) d\omega}
|
||||
\end{align\*}
|
||||
|
||||
</div>
|
||||
|
||||
In terms of signals, the \\(\mathcal{H}\_\infty\\) norm can be interpreted as follows:
|
||||
|
||||
- it is a measure of the expected RMS value of the output to white noise excitation
|
||||
|
||||
The \\(\mathcal{H}\_2\\) is very useful when combined to [Dynamic Error Budgeting]({{< relref "dynamic_error_budgeting.md" >}}).
|
||||
|
||||
As explained in (<a href="#citeproc_bib_item_1">Monkhorst 2004</a>), the \\(\mathcal{H}\_2\\) norm has a stochastic interpretation:
|
||||
|
||||
> The squared \\(\mathcal{H}\_2\\) norm can be interpreted as the output variance of a system with zero mean white noise input.
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_1"></a>Monkhorst, W. 2004. “Dynamic Error Budgeting, a Design Approach.” Delft University.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_2"></a>Toivonen, Hannu T. 2002. “Robust Control Methods.” Abo Akademi University.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_3"></a>Zhang, Weidong. 2011. <i>Quantitative Process Control Theory</i>. CRC Press.</div>
|
||||
<div class="csl-entry">NO_ITEM_DATA:skogestad05_multiv_feedb_contr</div>
|
||||
</div>
|
||||
@@ -0,0 +1,73 @@
|
||||
+++
|
||||
title = "Nyquist stability criterion"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
|
||||
## Theory {#theory}
|
||||
|
||||
The main reason why the Nyquist plot is used it that it can be used with the experimental FRF data!
|
||||
|
||||
The zeros and pole of a MIMO system are the zeros and pole of the determinant of \\(G(s)\\).
|
||||
\\[ \det(G(s)) = \frac{z\_G(s)}{p\_G(s)} \\]
|
||||
The polynomial \\(p\_G(s)\\) is normally called the **open-loop characteristic** polynomial.
|
||||
|
||||
In a MIMO feedback system:
|
||||
|
||||
- The transfer function matrix open-loop is:
|
||||
\\[ L(s) = G(s) K(s) \neq K(s) G(s) \\]
|
||||
- The transfer function matrix closed-loop is:
|
||||
\\[ T(s) = [I + L(s)]^{-1} L(s) \\]
|
||||
- **Return difference matrix**:
|
||||
\\[ F(s) = [I + L(s)] \\]
|
||||
|
||||
The closed-loop system is stable if the zeros of the closed-loop characteristic polynomial lie in the complex open left half plane.
|
||||
There are the zeros of:
|
||||
\\[ \det(I + GK) \\]
|
||||
|
||||
<div class="important">
|
||||
|
||||
**MIMO Nyquist stability criteria**:
|
||||
\\[ \det(I + G(s)K(s)) = 0 \quad \text{for} \quad \text{Re}(s)<0 \\]
|
||||
To check the closed-loop stability graphically, plot the Nyquist of \\(\det(I + GK)\\) and evaluate the encirclement with respect to the point \\((0,0)\\).
|
||||
The Nyquist plot is the image of the imaginary axis (\\(j\omega\\)) under \\(\det(I + GK)\\), i.e. it is the evolution of \\(\det(I + G(j\omega)K(j\omega))\\) in the complex plane.
|
||||
Note that there is a single plot, even in the MIMO case.
|
||||
|
||||
</div>
|
||||
|
||||
<div class="important">
|
||||
|
||||
**Eigenvalue loci**:
|
||||
The eigenvalue loci (sometimes called the characteristic loci) are defined as the eigenvalues of the frequency response function of the open-loop transfer function matrix \\(G(s)K(s)\\).
|
||||
This time, there are \\(n\\) plots, where \\(n\\) is the size of the system.
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
## Matlab Example {#matlab-example}
|
||||
|
||||
Sure we have identified a system with 6 inputs and 6 outputs.
|
||||
The Matlab object has dimension `6 x 6 x n` with `n` is the number of frequency points.
|
||||
|
||||
First, compute the open-loop gain:
|
||||
|
||||
```matlab
|
||||
L = zeros(6, 6, length(f));
|
||||
|
||||
for i_f = 1:length(f)
|
||||
L(:,:,i_f) = squeeze(G(:,:,i_f))*freqresp(K, f(i_f), 'Hz');
|
||||
end
|
||||
```
|
||||
|
||||
Then, compute the eigenvalues of this open-loop gain:
|
||||
Finally, plot the (complex) eigenvalues in the complex plane:
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,19 @@
|
||||
+++
|
||||
title = "Operational Amplifiers"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
|
||||
## Defaults of Operational Amplifiers {#defaults-of-operational-amplifiers}
|
||||
|
||||
{{< youtube nF104EvI0HM >}}
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,37 @@
|
||||
+++
|
||||
title = "Optical Fibers"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
|
||||
## Connectors {#connectors}
|
||||
|
||||
<a id="figure--fig:optical-fibers-sc"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/optical_fibers_sc.png" caption="<span class='figure-number'>Figure 1: </span>SC Connector (used for instance with Attocube)" >}}
|
||||
|
||||
<a id="figure--fig:optical-fibers-fc"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/optical_fibers_fc.png" caption="<span class='figure-number'>Figure 2: </span>FC connector" >}}
|
||||
|
||||
PC connector is used with Fabry-Perot interferometers when we wish to have some reflection at the end of the fiber.
|
||||
Otherwise, APC connectors are used.
|
||||
|
||||
<a id="figure--fig:optical-connector-PC-APC"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/optical_connector_PC_APC.png" caption="<span class='figure-number'>Figure 3: </span>PC (usually black) and APC (usually green) connectors" >}}
|
||||
|
||||
|
||||
## Multi-mode and Single-mode fibers {#multi-mode-and-single-mode-fibers}
|
||||
|
||||
If laser is used (fiber interferometer for instance), a single-mode fiber should be used and the wavelength of the mode should be matched with the wavelength of the laser.
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,14 @@
|
||||
+++
|
||||
title = "Optics"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,14 @@
|
||||
+++
|
||||
title = "Parallel Manipulators"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,29 @@
|
||||
+++
|
||||
title = "Passive Damping"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
|
||||
## Viscoelastic materials {#viscoelastic-materials}
|
||||
|
||||
- <https://www.damping.com/>
|
||||
- <https://www.viton.com/en>
|
||||
- <https://shop.eriks.fr/fr/joints-d-etancheite-joints-toriques-o-rings-et-accessoires-joint-torique-o-rings/CategoryDisplay?catalogId=1000&storeId=100006&langId=-2&beginIndex=0&categoryId=19542&facet=ads_f59542_ntk_cs%253A%2522FKM%2522>
|
||||
- <https://www.sorbothane.com/>
|
||||
|
||||
Vacuum compatible viscoelastic materials:
|
||||
|
||||
- Viton (also known as "FKM")
|
||||
|
||||
|
||||
## [Tuned Mass Damper]({{< relref "tuned_mass_damper.md" >}}) {#tuned-mass-damper--tuned-mass-damper-dot-md}
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,19 @@
|
||||
+++
|
||||
title = "Permanent Magnets"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
|
||||
## Neodymium Magnets {#neodymium-magnets}
|
||||
|
||||
<https://www.kjmagnetics.com/>
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,225 @@
|
||||
+++
|
||||
title = "Piezoelectric Actuators"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
category = "equipment"
|
||||
+++
|
||||
|
||||
Tags
|
||||
: [Actuators]({{< relref "actuators.md" >}}), [Voltage Amplifier]({{< relref "voltage_amplifier.md" >}})
|
||||
|
||||
|
||||
## Piezoelectric Stack Actuators {#piezoelectric-stack-actuators}
|
||||
|
||||
|
||||
### Manufacturers {#manufacturers}
|
||||
|
||||
| Manufacturers | Country |
|
||||
|----------------------------------------------------------------------------------------------------------------------|-----------|
|
||||
| [Cedrat](http://www.cedrat-technologies.com/) | France |
|
||||
| [PI](https://www.physikinstrumente.com/en/) | USA |
|
||||
| [Piezo System](https://www.piezosystem.com/products/piezo_actuators/stacktypeactuators/) | Germany |
|
||||
| [Noliac](http://www.noliac.com/products/actuators/plate-stacks/) | Denmark |
|
||||
| [Thorlabs](https://www.thorlabs.com/newgrouppage9.cfm?objectgroup_id=8700) | USA |
|
||||
| [PiezoDrive](https://www.piezodrive.com/actuators/) | Australia |
|
||||
| [Mechano Transformer](http://www.mechano-transformer.com/en/products/10.html) | Japan |
|
||||
| [CoreMorrow](http://www.coremorrow.com/en/pro-9-1.html) | China |
|
||||
| [PiezoData](https://www.piezodata.com/piezo-stack-actuator-2/) | China |
|
||||
| [Queensgate](https://www.nanopositioning.com/product-category/nanopositioning/nanopositioning-actuators-translators) | UK |
|
||||
| [Matsusada Precision](https://www.matsusada.com/product/pz/) | Japan |
|
||||
| [Sinocera](http://www.china-yec.net/piezoelectric-ceramics/) | China |
|
||||
| [Fuji Ceramisc](http://www.fujicera.co.jp/en/) | Japan |
|
||||
|
||||
|
||||
### Model {#model}
|
||||
|
||||
A model of a multi-layer monolithic piezoelectric stack actuator is described in (<a href="#citeproc_bib_item_2">Fleming 2010</a>) ([Notes]({{< relref "fleming10_nanop_system_with_force_feedb.md" >}})).
|
||||
|
||||
Basically, it can be represented by a spring \\(k\_a\\) with the force source \\(F\_a\\) in parallel.
|
||||
|
||||
The relation between the applied voltage \\(V\_a\\) to the generated force \\(F\_a\\) is:
|
||||
\\[ F\_a = g\_a V\_a, \quad g\_a = d\_{33} n k\_a \\]
|
||||
with:
|
||||
|
||||
- \\(d\_{33}\\) is the piezoelectric strain constant [m/V]
|
||||
- \\(n\\) is the number of layers
|
||||
- \\(k\_a\\) is the actuator stiffness [N/m]
|
||||
|
||||
|
||||
## Piezoelectric Plate Actuators {#piezoelectric-plate-actuators}
|
||||
|
||||
Some manufacturers propose "raw" plate actuators that can be used as actuator / sensors.
|
||||
|
||||
| Manufacturers | Country |
|
||||
|---------------------------------------------------------------------|---------|
|
||||
| [Noliac](http://www.noliac.com/products/actuators/plate-actuators/) | Denmak |
|
||||
|
||||
|
||||
## Mechanically Amplified Piezoelectric actuators {#mechanically-amplified-piezoelectric-actuators}
|
||||
|
||||
The Amplified Piezo Actuators principle is presented in (<a href="#citeproc_bib_item_1">Claeyssen et al. 2007</a>):
|
||||
|
||||
> The displacement amplification effect is related in a first approximation to the ratio of the shell long axis length to the short axis height.
|
||||
> The flatter is the actuator, the higher is the amplification.
|
||||
|
||||
A model of an amplified piezoelectric actuator is described in (<a href="#citeproc_bib_item_5">Lucinskis and Mangeot 2016</a>).
|
||||
|
||||
Typical topology of mechanically amplified piezoelectric actuators are displayed in [Figure 1](#figure--fig:ling16-topology-piezo-mechanism-types) (from (<a href="#citeproc_bib_item_3">Ling et al. 2016</a>)).
|
||||
|
||||
<a id="figure--fig:ling16-topology-piezo-mechanism-types"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/ling16_topology_piezo_mechanism_types.png" caption="<span class='figure-number'>Figure 1: </span>Topology of several types of compliant mechanisms" >}}
|
||||
|
||||
| Manufacturers | Country |
|
||||
|----------------------------------------------------------------------------------------------------|-----------|
|
||||
| [Cedrat](https://www.cedrat-technologies.com/en/products/actuators/amplified-piezo-actuators.html) | France |
|
||||
| [PiezoDrive](https://www.piezodrive.com/actuators/ap-series-amplified-piezoelectric-actuators/) | Australia |
|
||||
| [Dynamic-Structures](https://www.dynamic-structures.com/category/piezo-actuators-stages) | USA |
|
||||
| [Thorlabs](https://www.thorlabs.com/newgrouppage9.cfm?objectgroup_id=8700) | USA |
|
||||
| [Noliac](http://www.noliac.com/products/actuators/amplified-actuators/) | Denmark |
|
||||
| [Mechano Transformer](http://www.mechano-transformer.com/en/products/01a_actuator_5.html) | Japan |
|
||||
| [CoreMorrow](http://www.coremorrow.com/en/pro-13-1.html) | China |
|
||||
| [PiezoData](https://www.piezodata.com/piezoelectric-actuator-amplifier/) | China |
|
||||
|
||||
|
||||
## Specifications {#specifications}
|
||||
|
||||
|
||||
### Typical Specifications {#typical-specifications}
|
||||
|
||||
Typical specifications of piezoelectric stack actuators are usually in terms of:
|
||||
|
||||
- Displacement/ Travel range \\([\mu m]\\)
|
||||
- Blocked force \\([N]\\)
|
||||
- Stiffness \\([N/\mu m]\\)
|
||||
- Resolution \\([nm]\\)
|
||||
- Length \\([mm]\\)
|
||||
- Electrical Capacitance \\([nF]\\)
|
||||
|
||||
|
||||
### Displacement and Length {#displacement-and-length}
|
||||
|
||||
The maximum displacement specified is the displacement of the actuator when the maximum voltage is applied without any load.
|
||||
|
||||
Typical maximum strain of Piezoelectric Stack Actuators is \\(0.1\\%\\).
|
||||
The free displacement \\(\Delta L\_{f}\\) is then related to the length \\(L\\) of piezoelectric stack by:
|
||||
|
||||
\begin{equation}
|
||||
\Delta L\_f \approx \frac{L}{1000}
|
||||
\end{equation}
|
||||
|
||||
> A “free” actuator — one that experiences no resistance to movement — will produce its maximum displacement, often referred to as “free stroke,” and generate zero force.
|
||||
|
||||
Note that this maximum displacement is only attainable at DC.
|
||||
For dynamical applications, the electrical capacitance of the piezoelectric actuator is an important factor (see bellow).
|
||||
|
||||
|
||||
### Blocked Force {#blocked-force}
|
||||
|
||||
The blocked force \\(F\_b\\) is measured by first applying the maximum voltage to the piezoelectric stack without any load.
|
||||
Thus, the piezoelectric stack experiences its maximum displacement.
|
||||
|
||||
A force is then applied to return the actuator to its original length.
|
||||
This force is measured and recorded as the blocking force.
|
||||
|
||||
The blocking force is also the maximum force that can produce the piezoelectric stack in contact with an infinitely stiff environment.
|
||||
|
||||
> When an actuator is blocked from moving, it will produce its maximum force, which is referred to as the blocked, or blocking, force.
|
||||
|
||||
|
||||
### Stiffness {#stiffness}
|
||||
|
||||
The stiffness of the actuator is the ratio of the blocking force to the free stroke:
|
||||
|
||||
\begin{equation}
|
||||
k\_p = \frac{F\_b}{\Delta L\_f}
|
||||
\end{equation}
|
||||
|
||||
with:
|
||||
|
||||
- \\(k\_p\\): stiffness of the piezo actuator
|
||||
- \\(F\_b\\): blocking force
|
||||
- \\(\Delta L\_f\\): free stroke
|
||||
|
||||
|
||||
### Resolution {#resolution}
|
||||
|
||||
The resolution is limited by the noise in the [Voltage Amplifier]({{< relref "voltage_amplifier.md" >}}).
|
||||
|
||||
Typical [Signal to Noise Ratio]({{< relref "signal_to_noise_ratio.md" >}}) of voltage amplifiers is \\(100dB = 10^{5}\\).
|
||||
Thus, for a piezoelectric stack with a displacement \\(L\\), the resolution will be
|
||||
|
||||
\begin{equation}
|
||||
r \approx \frac{L}{10^5}
|
||||
\end{equation}
|
||||
|
||||
For a piezoelectric stack with a displacement of \\(100\\,[\mu m]\\), the resolution will be \\(\approx 1\\,[nm]\\).
|
||||
|
||||
|
||||
### Electrical Capacitance {#electrical-capacitance}
|
||||
|
||||
The electrical capacitance may limit the maximum voltage that can be used to drive the piezoelectric actuator as a function of frequency ([Figure 2](#figure--fig:piezoelectric-capacitance-voltage-max)).
|
||||
This is due to the fact that voltage amplifier has a limitation on the deliverable current.
|
||||
|
||||
[Voltage Amplifier]({{< relref "voltage_amplifier.md" >}}) with high maximum output current should be used if either high bandwidth is wanted or piezoelectric stacks with high capacitance are to be used.
|
||||
|
||||
<a id="figure--fig:piezoelectric-capacitance-voltage-max"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/piezoelectric_capacitance_voltage_max.png" caption="<span class='figure-number'>Figure 2: </span>Maximum sin-wave amplitude as a function of frequency for several piezoelectric capacitance" >}}
|
||||
|
||||
|
||||
## Piezoelectric actuator experiencing a mass load {#piezoelectric-actuator-experiencing-a-mass-load}
|
||||
|
||||
When the piezoelectric actuator is supporting a payload, it will experience a static deflection due to its finite stiffness \\(\Delta l\_n = \frac{mg}{k\_p}\\), but its stroke will remain unchanged ([Figure 3](#figure--fig:piezoelectric-mass-load)).
|
||||
|
||||
<a id="figure--fig:piezoelectric-mass-load"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/piezoelectric_mass_load.png" caption="<span class='figure-number'>Figure 3: </span>Motion of a piezoelectric stack actuator under external constant force" >}}
|
||||
|
||||
|
||||
## Piezoelectric actuator in contact with a spring load {#piezoelectric-actuator-in-contact-with-a-spring-load}
|
||||
|
||||
Then the piezoelectric actuator is in contact with a spring load \\(k\_e\\), its maximum stroke \\(\Delta L\\) is less than its free stroke \\(\Delta L\_f\\) ([Figure 4](#figure--fig:piezoelectric-spring-load)):
|
||||
|
||||
\begin{equation}
|
||||
\Delta L = \Delta L\_f \frac{k\_p}{k\_p + k\_e}
|
||||
\end{equation}
|
||||
|
||||
<a id="figure--fig:piezoelectric-spring-load"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/piezoelectric_spring_load.png" caption="<span class='figure-number'>Figure 4: </span>Motion of a piezoelectric stack actuator in contact with a stiff environment" >}}
|
||||
|
||||
For piezo actuators, force and displacement are inversely related ([Figure 5](#figure--fig:piezoelectric-force-displ-relation)).
|
||||
Maximum, or blocked, force (\\(F\_b\\)) occurs when there is no displacement.
|
||||
Likewise, at maximum displacement, or free stroke, (\\(\Delta L\_f\\)) no force is generated.
|
||||
When an external load is applied, the stiffness of the load (\\(k\_e\\)) determines the displacement (\\(\Delta L\_A\\)) and force (\\(\Delta F\_A\\)) that can be produced.
|
||||
|
||||
<a id="figure--fig:piezoelectric-force-displ-relation"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/piezoelectric_force_displ_relation.png" caption="<span class='figure-number'>Figure 5: </span>Relation between the maximum force and displacement" >}}
|
||||
|
||||
|
||||
## Piezoelectric stiffness - Electrical Boundaries {#piezoelectric-stiffness-electrical-boundaries}
|
||||
|
||||
The stiffness of the piezoelectric stack varies a little bit whether it is open-circuited or short-circuited (<a href="#citeproc_bib_item_4">Liu et al. 2007</a>).
|
||||
This this experiment: <https://research.tdehaeze.xyz/test-bench-force-sensor/>.
|
||||
|
||||
Therefore, if the piezoelectric actuator is driven by a charge amplifier (i.e. high input impedance), the stiffness will be a little bit higher than if it is driven with a voltage amplifier (i.e. small input impedance).
|
||||
|
||||
|
||||
## Driving Electronics {#driving-electronics}
|
||||
|
||||
Piezoelectric actuators can be driven either using a voltage to charge converter or a [Voltage Amplifier]({{< relref "voltage_amplifier.md" >}}).
|
||||
Limitations of the electronics is discussed in [Design, modeling and control of nanopositioning systems]({{< relref "fleming14_desig_model_contr_nanop_system.md" >}}).
|
||||
Also see (<a href="#citeproc_bib_item_4">Liu et al. 2007</a>).
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_1"></a>Claeyssen, F., R. Le Letty, F. Barillot, and O. Sosnicki. 2007. “Amplified Piezoelectric Actuators: Static & Dynamic Applications.” <i>Ferroelectrics</i> 351 (1): 3–14. doi:<a href="https://doi.org/10.1080/00150190701351865">10.1080/00150190701351865</a>.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_2"></a>Fleming, A.J. 2010. “Nanopositioning System with Force Feedback for High-Performance Tracking and Vibration Control.” <i>IEEE/ASME Transactions on Mechatronics</i> 15 (3): 433–47. doi:<a href="https://doi.org/10.1109/tmech.2009.2028422">10.1109/tmech.2009.2028422</a>.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_3"></a>Ling, Mingxiang, Junyi Cao, Minghua Zeng, Jing Lin, and Daniel J Inman. 2016. “Enhanced Mathematical Modeling of the Displacement Amplification Ratio for Piezoelectric Compliant Mechanisms.” <i>Smart Materials and Structures</i> 25 (7): 075022. doi:<a href="https://doi.org/10.1088/0964-1726/25/7/075022">10.1088/0964-1726/25/7/075022</a>.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_4"></a>Liu, W. Q., Z. H. Feng, R. B. Liu, and J. Zhang. 2007. “The Influence of Preamplifiers on the Piezoelectric Sensor’s Dynamic Property.” <i>Review of Scientific Instruments</i> 78 (12): 125107. doi:<a href="https://doi.org/10.1063/1.2825404">10.1063/1.2825404</a>.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_5"></a>Lucinskis, R., and C. Mangeot. 2016. “Dynamic Characterization of an Amplified Piezoelectric Actuator.”</div>
|
||||
</div>
|
||||
@@ -0,0 +1,149 @@
|
||||
+++
|
||||
title = "Position Jitter due to Asynchronous Acquisition"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
|
||||
## Observed issue {#observed-issue}
|
||||
|
||||
Sometime the controller is not compatible with the encoder protocol.
|
||||
In that case a PEPU can be used in between the encoder and the controller to convert the encoder value to something readable by the controller.
|
||||
This is illustrated in [Figure 1](#figure--fig:position-jitter-issue).
|
||||
|
||||
<a id="figure--fig:position-jitter-issue"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/position_jitter_issue.png" caption="<span class='figure-number'>Figure 1: </span>Measurement Setup: an encoder working with BISS protocol is read by a PEPU (every \\(T\_{s,\text{pepu}}\\) seconds) and the controller reads the stored encoder value in the PEPU every \\(T\_{s,\text{ctrl}}\\) seconds" >}}
|
||||
|
||||
When scanning the device (i.e. changing rapidly the read value on the encoder), some "jumps" on the encoder value read by the controller can be seen.
|
||||
This effect is due to some "jitter" between the PEPU acquisition rate and the controller rate as will be explained bellow.
|
||||
|
||||
|
||||
## Visual display of jitter issue {#visual-display-of-jitter-issue}
|
||||
|
||||
Let's make a simulation to understand what is going on.
|
||||
Let's choose the following parameters:
|
||||
|
||||
- \\(T\_{s,\text{pepu}} = 60\\,\mu s\\): the acquisition rate of the encoder on the PEPU (very typical for a 32bit absolute encoder)
|
||||
- \\(v = 1\\,mm/s\\): the scan velocity
|
||||
- \\(T\_{s,\text{ctrl}} = 100\\,\mu s\\) the "sampling rate" of the controller
|
||||
|
||||
The encoder position as well as the stored value on the PEPU and the position used in the controller are shown in [Figure 2](#figure--fig:jitter-error-example), left.
|
||||
The errors associated with the "jitter" is shown in [Figure 2](#figure--fig:jitter-error-example), right.
|
||||
|
||||
```matlab
|
||||
%% Simulation parameters
|
||||
v = 1e-3; % Scanning velocity [m/s or rad/s]
|
||||
Ts_pepu = 60e-6; % Sampling time of PEPU [s] i.e. time to get a new encoder value
|
||||
Ts_ctrl = 1e-4; % Sampling time of controller [s]
|
||||
|
||||
t_sim = 10*Ts_ctrl; % Total simulation time [s]
|
||||
t = 0:1e-6:t_sim; % Time vector used for simulation [s]
|
||||
x = v*t; % Suppose linear position [m, rad]
|
||||
|
||||
%% Compute position stored in PEPU as every time step
|
||||
x_pepu = Ts_pepu*floor(t/Ts_pepu)*v;
|
||||
|
||||
%% Compute position get on the controller at each control period
|
||||
t_ctrl = 0:Ts_ctrl:t_sim; % Time vector [s]
|
||||
x_ctrl = zeros(size(t_ctrl)); % Position stored on the controller [m]
|
||||
x_error = zeros(size(t_ctrl)); % Position error due to "jitter" [m]
|
||||
for i = 1:length(t_ctrl)
|
||||
[~, i_t] = min(abs(t - t_ctrl(i))); % Find the stored encoder value in the PEPU at the time of the controller period
|
||||
x_ctrl(i) = x_pepu(i_t);
|
||||
x_error(i) = x_pepu(i_t) - x(i_t);
|
||||
end
|
||||
```
|
||||
|
||||
<a id="figure--fig:jitter-error-example"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/jitter_error_example.png" caption="<span class='figure-number'>Figure 2: </span>Measurement error due to Jitter. 1mm/s velocity scan, Ts_pepu is 60us and Ts_ctrl is 100us" >}}
|
||||
|
||||
|
||||
## Expected error induced by "jitter" {#expected-error-induced-by-jitter}
|
||||
|
||||
Th "position jitter" depends on:
|
||||
|
||||
- \\(T\_{s,\text{pepu}}\\): the "sampling time" of the encoder on the PEPU
|
||||
- \\(v\\): the scan velocity in [unit/s]
|
||||
|
||||
The obtain "jitter" can be as large as (expressed in the same units as \\(v\\)):
|
||||
|
||||
\begin{equation}
|
||||
dx = v \cdot T\_{s,\text{pepu}}
|
||||
\end{equation}
|
||||
|
||||
Let's make a numerical example:
|
||||
|
||||
```matlab
|
||||
%% Simulation parameters
|
||||
v = 1e-3; % Scanning velocity [m/s or rad/s]
|
||||
Ts_pepu = 60e-6; % Sampling time of PEPU [s] i.e. time to get a new encoder value
|
||||
```
|
||||
|
||||
```text
|
||||
dx = 60 [nm] with v = 1.0 [mm/s] and Ts_pepu = 60 [us]
|
||||
```
|
||||
|
||||
|
||||
## Is there an optimal PEPU acquisition rate? {#is-there-an-optimal-pepu-acquisition-rate}
|
||||
|
||||
Changing the readout time of the PEPU (its clock for instance) changes the jitter amplitude as well as its "pattern":
|
||||
|
||||
```matlab
|
||||
%% Longer simulation than before to better see the pattern
|
||||
t_sim = 50*Ts_ctrl; % Total simulation time [s]
|
||||
t = 0:1e-6:t_sim; % Time vector used for simulation [s]
|
||||
x = v*t; % Suppose linear position [m, rad]
|
||||
t_ctrl = 0:Ts_ctrl:t_sim; % Time vector [s]
|
||||
|
||||
%% Large Ts_pepu to try to match with controller sampling time
|
||||
Ts_pepu = 95e-6; % Sampling time of PEPU [s] i.e. time to get a new encoder value
|
||||
x_pepu = Ts_pepu*floor(t/Ts_pepu)*v;
|
||||
x_error_1 = zeros(size(t_ctrl)); % Position error due to "jitter" [m]
|
||||
for i = 1:length(t_ctrl)
|
||||
[~, i_t] = min(abs(t - t_ctrl(i))); % Find the stored encoder value in the PEPU at the time of the controller period
|
||||
x_error_1(i) = x_pepu(i_t) - x(i_t);
|
||||
end
|
||||
|
||||
%% Small Ts_pepu as possible to reduce jitter amplitude
|
||||
Ts_pepu = 30e-6; % Sampling time of PEPU [s] i.e. time to get a new encoder value
|
||||
x_pepu = Ts_pepu*floor(t/Ts_pepu)*v;
|
||||
x_error_2 = zeros(size(t_ctrl)); % Position error due to "jitter" [m]
|
||||
for i = 1:length(t_ctrl)
|
||||
[~, i_t] = min(abs(t - t_ctrl(i))); % Find the stored encoder value in the PEPU at the time of the controller period
|
||||
x_error_2(i) = x_pepu(i_t) - x(i_t);
|
||||
end
|
||||
|
||||
%% Small Ts_pepu as possible to reduce jitter amplitude
|
||||
Ts_pepu = 10e-6; % Sampling time of PEPU [s] i.e. time to get a new encoder value
|
||||
x_pepu = Ts_pepu*floor(t/Ts_pepu)*v;
|
||||
x_error_3 = zeros(size(t_ctrl)); % Position error due to "jitter" [m]
|
||||
for i = 1:length(t_ctrl)
|
||||
[~, i_t] = min(abs(t - t_ctrl(i))); % Find the stored encoder value in the PEPU at the time of the controller period
|
||||
x_error_3(i) = x_pepu(i_t) - x(i_t);
|
||||
end
|
||||
```
|
||||
|
||||
<a id="figure--fig:jitter-errors-effect-Ts-pepu"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/jitter_errors_effect_Ts_pepu.png" caption="<span class='figure-number'>Figure 3: </span>Measurement errors due to Jitter. Effect of the refresh rate on the PEPU, different "patterns" can appear. Velocity scan is 1mm/s" >}}
|
||||
|
||||
<div class="important">
|
||||
|
||||
For high velocity / high precision scans, it is important to reduce the timing jitter of the measured position (i.e. "position jitter").
|
||||
|
||||
Ideally, this is the control system (i.e. where the feedback controller is implemented) that triggers the readout of all the sensors.
|
||||
|
||||
Having a intermediate electronic device (here the PEPU) that triggers the readout of the encoders not in sync with the controller can affect quite negatively the quality of the motion.
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,81 @@
|
||||
+++
|
||||
title = "Position Sensors"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
category = "equipment"
|
||||
+++
|
||||
|
||||
Tags
|
||||
: [Inertial Sensors]({{< relref "inertial_sensors.md" >}}), [Force Sensors]({{< relref "force_sensors.md" >}}), [Sensor Fusion]({{< relref "sensor_fusion.md" >}}), [Signal Conditioner]({{< relref "signal_conditioner.md" >}}), [Signal to Noise Ratio]({{< relref "signal_to_noise_ratio.md" >}})
|
||||
|
||||
|
||||
## Types of Positioning sensors {#types-of-positioning-sensors}
|
||||
|
||||
High precision positioning sensors include:
|
||||
|
||||
- [Interferometers]({{< relref "interferometers.md" >}})
|
||||
- [Capacitive Sensors]({{< relref "capacitive_sensors.md" >}})
|
||||
- [LVDT]({{< relref "linear_variable_differential_transformers.md" >}})
|
||||
- [Eddy Current Sensors]({{< relref "eddy_current_sensors.md" >}})
|
||||
- [Encoders]({{< relref "encoders.md" >}})
|
||||
- [Quadrant Photodiodes]({{< relref "quadrant_photodiodes.md" >}})
|
||||
|
||||
|
||||
## Reviews of Relative Position Sensors {#reviews-of-relative-position-sensors}
|
||||
|
||||
- Fleming, A. J., A review of nanometer resolution position sensors: operation and performance (<a href="#citeproc_bib_item_2">Fleming 2013</a>) ([Notes]({{< relref "fleming13_review_nanom_resol_posit_sensor.md" >}}))
|
||||
- (<a href="#citeproc_bib_item_3">Gao et al. 2015</a>)
|
||||
|
||||
[Table 1](#table--tab:characteristics-relative-sensor) is taken from (<a href="#citeproc_bib_item_1">Collette et al. 2011</a>).
|
||||
|
||||
<a id="table--tab:characteristics-relative-sensor"></a>
|
||||
<div class="table-caption">
|
||||
<span class="table-number"><a href="#table--tab:characteristics-relative-sensor">Table 1</a>:</span>
|
||||
Characteristics of relative measurement sensors
|
||||
</div>
|
||||
|
||||
| Technology | Frequency | Resolution | Range | T Range |
|
||||
|----------------|------------|----------------|--------------|-------------|
|
||||
| LVDT | DC-200 Hz | 10 nm rms | 1-10 mm | -50,100 °C |
|
||||
| Eddy current | 5 kHz | 0.1-100 nm rms | 0.5-55 mm | -50,100 °C |
|
||||
| Capacitive | DC-100 kHz | 0.05-50 nm rms | 50 nm - 1 cm | -40,100 °C |
|
||||
| Interferometer | 300 kHz | 0.1 nm rms | 10 cm | -250,100 °C |
|
||||
| Encoder | DC-1 MHz | 1 nm rms | 7-27 mm | 0,40 °C |
|
||||
| Bragg Fibers | DC-150 Hz | 0.3 nm rms | 3.5 cm | -30,80 °C |
|
||||
|
||||
[Table 2](#table--tab:summary-position-sensors) it taken from (<a href="#citeproc_bib_item_2">Fleming 2013</a>).
|
||||
|
||||
<a id="table--tab:summary-position-sensors"></a>
|
||||
<div class="table-caption">
|
||||
<span class="table-number"><a href="#table--tab:summary-position-sensors">Table 2</a>:</span>
|
||||
Summary of position sensor characteristics. The dynamic range (DNR) and resolution are approximations based on a full-scale range of 100um and a first order bandwidth of \(1 kHz\)
|
||||
</div>
|
||||
|
||||
| Sensor Type | Range | DNR | Resolution | Max. BW | Accuracy |
|
||||
|----------------|--------------------------------|---------|------------|-------------|-----------|
|
||||
| Metal foil | \\(10-500 \mu m\\) | 230 ppm | 23 nm | 1-10 kHz | 1% FSR |
|
||||
| Piezoresistive | \\(1-500 \mu m\\) | 5 ppm | 0.5 nm | >100 kHz | 1% FSR |
|
||||
| Capacitive | \\(10 \mu m\\) to \\(10 mm\\) | 24 ppm | 2.4 nm | 100 kHz | 0.1% FSR |
|
||||
| Electrothermal | \\(10 \mu m\\) to \\(1 mm\\) | 100 ppm | 10 nm | 10 kHz | 1% FSR |
|
||||
| Eddy current | \\(100 \mu m\\) to \\(80 mm\\) | 10 ppm | 1 nm | 40 kHz | 0.1% FSR |
|
||||
| LVDT | \\(0.5-500 mm\\) | 10 ppm | 5 nm | 1 kHz | 0.25% FSR |
|
||||
| Interferometer | Meters | | 0.5 nm | >100kHz | 1 ppm FSR |
|
||||
| Encoder | Meters | | 6 nm | >100kHz | 5 ppm FSR |
|
||||
|
||||
Capacitive Sensors and Eddy-Current sensors are compare [here](https://www.lionprecision.com/comparing-capacitive-and-eddy-current-sensors/).
|
||||
|
||||
[Figure 1](#figure--fig:position-sensors-thurner15) is taken from (<a href="#citeproc_bib_item_4">Thurner et al. 2015</a>).
|
||||
|
||||
<a id="figure--fig:position-sensors-thurner15"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/position_sensors_thurner15.png" caption="<span class='figure-number'>Figure 1: </span>Overview of range and precision of different position displacement sensors" >}}
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_1"></a>Collette, C, K Artoos, M Guinchard, S Janssens, P Carmona Fernandez, and C Hauviller. 2011. “Review of Sensors for Low Frequency Seismic Vibration Measurement.” CERN.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_2"></a>Fleming, A. J. 2013. “A Review of Nanometer Resolution Position Sensors: Operation and Performance.” <i>Sensors and Actuators a: Physical</i> 190: 106–26. doi:<a href="https://doi.org/10.1016/j.sna.2012.10.016">10.1016/j.sna.2012.10.016</a>.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_3"></a>Gao, W., S.W. Kim, H. Bosse, H. Haitjema, Y.L. Chen, X.D. Lu, W. Knapp, A. Weckenmann, W.T. Estler, and H. Kunzmann. 2015. “Measurement Technologies for Precision Positioning.” <i>CIRP Annals</i> 64 (2): 773–96. doi:<a href="https://doi.org/10.1016/j.cirp.2015.05.009">10.1016/j.cirp.2015.05.009</a>.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_4"></a>Thurner, Klaus, Francesca Paola Quacquarelli, Pierre-François Braun, Claudio Dal Savio, and Khaled Karrai. 2015. “Fiber-Based Distance Sensing Interferometry.” <i>Applied Optics</i> 54 (10). Optical Society of America: 3051–63.</div>
|
||||
</div>
|
||||
@@ -0,0 +1,156 @@
|
||||
+++
|
||||
title = "Positioning Stations"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
category = "equipment"
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
|
||||
## Review {#review}
|
||||
|
||||
|
||||
### Sensors {#sensors}
|
||||
|
||||
- Capacitive: (<a href="#citeproc_bib_item_8">Schroer et al. 2017</a>; <a href="#citeproc_bib_item_11">Villar et al. 2018</a>; <a href="#citeproc_bib_item_9">Schropp et al. 2020</a>)
|
||||
- Fiber Interferometers Interferometers:
|
||||
- Attocube FPS3010 Fabry-Pérot interferometers: (<a href="#citeproc_bib_item_7">Nazaretski et al. 2015</a>, <a href="#citeproc_bib_item_6">2022</a>; <a href="#citeproc_bib_item_10">Stankevic et al. 2017</a>; <a href="#citeproc_bib_item_1">Engblom 2018</a>)
|
||||
- Attocube IDS3010 Fabry-Pérot interferometers: (<a href="#citeproc_bib_item_4">Holler et al. 2017</a>, <a href="#citeproc_bib_item_3">2018</a>; <a href="#citeproc_bib_item_5">Kelly et al. 2022</a>)
|
||||
- PicoScale SmarAct Michelson interferometers: (<a href="#citeproc_bib_item_8">Schroer et al. 2017</a>; <a href="#citeproc_bib_item_9">Schropp et al. 2020</a>; <a href="#citeproc_bib_item_13">Xu et al. 2023</a>; <a href="#citeproc_bib_item_2">Geraldes et al. 2023</a>)
|
||||
|
||||
|
||||
### Actuators {#actuators}
|
||||
|
||||
- Piezoelectric: (<a href="#citeproc_bib_item_7">Nazaretski et al. 2015</a>, <a href="#citeproc_bib_item_6">2022</a>; <a href="#citeproc_bib_item_4">Holler et al. 2017</a>, <a href="#citeproc_bib_item_3">2018</a>; <a href="#citeproc_bib_item_11">Villar et al. 2018</a>)
|
||||
- 3-phase linear motor: (<a href="#citeproc_bib_item_10">Stankevic et al. 2017</a>; <a href="#citeproc_bib_item_1">Engblom 2018</a>)
|
||||
- Voice Coil: (<a href="#citeproc_bib_item_5">Kelly et al. 2022</a>; <a href="#citeproc_bib_item_2">Geraldes et al. 2023</a>)
|
||||
|
||||
|
||||
### Bandwidth {#bandwidth}
|
||||
|
||||
Rarely specificity.
|
||||
Usually slow, so that only drifts are compensated.
|
||||
Only recently, high bandwidth (100Hz) have been reported with the use of voice coil actuators (<a href="#citeproc_bib_item_5">Kelly et al. 2022</a>; <a href="#citeproc_bib_item_2">Geraldes et al. 2023</a>).
|
||||
|
||||
|
||||
### Degrees of Freedom {#degrees-of-freedom}
|
||||
|
||||
- Full rotation for tomography:
|
||||
- Spindle bellow YZ stage: (<a href="#citeproc_bib_item_12">Wang et al. 2012</a>; <a href="#citeproc_bib_item_8">Schroer et al. 2017</a>; <a href="#citeproc_bib_item_9">Schropp et al. 2020</a>; <a href="#citeproc_bib_item_2">Geraldes et al. 2023</a>)
|
||||
- Spindle above YZ stage: (<a href="#citeproc_bib_item_10">Stankevic et al. 2017</a>; <a href="#citeproc_bib_item_4">Holler et al. 2017</a>, <a href="#citeproc_bib_item_3">2018</a>; <a href="#citeproc_bib_item_11">Villar et al. 2018</a>; <a href="#citeproc_bib_item_1">Engblom 2018</a>; <a href="#citeproc_bib_item_6">Nazaretski et al. 2022</a>; <a href="#citeproc_bib_item_13">Xu et al. 2023</a>)
|
||||
- Only for mapping: (<a href="#citeproc_bib_item_7">Nazaretski et al. 2015</a>; <a href="#citeproc_bib_item_5">Kelly et al. 2022</a>)
|
||||
|
||||
**Stroke**:
|
||||
|
||||
- > 1mm: (<a href="#citeproc_bib_item_7">Nazaretski et al. 2015</a>; <a href="#citeproc_bib_item_5">Kelly et al. 2022</a>; <a href="#citeproc_bib_item_2">Geraldes et al. 2023</a>)
|
||||
|
||||
|
||||
### Payload capabilities {#payload-capabilities}
|
||||
|
||||
- Micron scale samples
|
||||
- Samples up to 500g (<a href="#citeproc_bib_item_6">Nazaretski et al. 2022</a>; <a href="#citeproc_bib_item_5">Kelly et al. 2022</a>)
|
||||
|
||||
|
||||
### Nano Positioning End-Station without online metrology {#nano-positioning-end-station-without-online-metrology}
|
||||
|
||||
{{< figure src="/ox-hugo/endstation_id11.png" >}}
|
||||
|
||||
|
||||
### End-Station with integrated online metrology {#end-station-with-integrated-online-metrology}
|
||||
|
||||
<div class="table-caption">
|
||||
<span class="table-number">Table 1:</span>
|
||||
End-Station with integrated online metrology
|
||||
</div>
|
||||
|
||||
| Architecture | Sensors and measured DoFs | Metrology Use | Stroke, DoF | Samples | Institute, BL | Ref |
|
||||
|-------------------------------------------------------------------|------------------------------|---------------------|-------------------------|--------------|----------------|------------------------------------------------------------------------------------------------------------------|
|
||||
| Spindle / **XYZ piezo stage** / Spherical retroreflector / Sample | 3 interferometers: \\(YZ\\) | Characterization | XYZ: 100um, Rz: 180 deg | micron scale | PETRA III, P06 | (<a href="#citeproc_bib_item_8">Schroer et al. 2017</a>; <a href="#citeproc_bib_item_9">Schropp et al. 2020</a>) |
|
||||
| Spindle / Metrology Ring / **XYZ** Stage / Sample | 3 Capacitive: \\(YZR\_x\\) | Post processing | | micron scale | NSLS, X8C | (<a href="#citeproc_bib_item_12">Wang et al. 2012</a>) |
|
||||
| **XYZ piezo stage** / Spindle / Metrology Ring / Sample | 2 interferometers : \\(YZ\\) | Detector triggering | | micron scale | NSLS, HRX | (<a href="#citeproc_bib_item_13">Xu et al. 2023</a>) |
|
||||
|
||||
<a id="figure--fig:endstation-schroer"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/endstation_schroer.png" caption="<span class='figure-number'>Figure 1: </span>Figure caption" >}}
|
||||
|
||||
<a id="figure--fig:endstation-wang"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/endstation_wang.png" caption="<span class='figure-number'>Figure 2: </span>Figure caption" >}}
|
||||
|
||||
<a id="figure--fig:endstation-xu24"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/endstation_xu24.png" caption="<span class='figure-number'>Figure 3: </span>Figure caption" >}}
|
||||
|
||||
|
||||
### End-Station with integrated feedback loops based on online metrology {#end-station-with-integrated-feedback-loops-based-on-online-metrology}
|
||||
|
||||
<div class="table-caption">
|
||||
<span class="table-number">Table 2:</span>
|
||||
End-Station with integrated feedback loops based on online metrology. Stages used for feedback are indicated in bold font.
|
||||
</div>
|
||||
|
||||
| Architecture | Sensors and measured DoFs | Bandwidth | Stroke, DoF | Samples | Institute, BL | Ref |
|
||||
|----------------------------------------------------------------------|----------------------------------------|-----------|--------------------------------------|------------|-------------------|--------------------------------------------------------------------------------------------------------------|
|
||||
| **XYZ piezo motors** / Mirrors / Sample | 3 interferometers: \\(XYZ\\) | 3 PID | XYZ: 3mm | light | APS | (<a href="#citeproc_bib_item_7">Nazaretski et al. 2015</a>) |
|
||||
| **Piezo Hexapod** / Spindle / Metrology Ring / Sample | 12 Capacitive: \\(XYZR\_xR\_y\\) | 10Hz | XYZ: 50um, Rx/Ry:500urad, Rz: 180deg | light | ESRF, ID16a | (<a href="#citeproc_bib_item_11">Villar et al. 2018</a>) |
|
||||
| **Piezo Tripod** / Spindle / Spherical Reference / Sample | 5 Custom interferometers: \\(YZR\_x\\) | PID | XYZ: 400um, Rz: 365 deg | light | PSI, OMNY | (<a href="#citeproc_bib_item_4">Holler et al. 2017</a>, <a href="#citeproc_bib_item_3">2018</a>) |
|
||||
| **Stacked XYZ linear motors** / Spindle / XY / Cylindrical Reference | 5 interferometers: \\(XYZR\_xR\_y\\) | | XYZ: 400um, Rz: 360 deg | light | Soleil, Nanoprobe | (<a href="#citeproc_bib_item_10">Stankevic et al. 2017</a>; <a href="#citeproc_bib_item_1">Engblom 2018</a>) |
|
||||
| **XYZ piezo** / Spindle / Metrology Ring / Sample | 3 interferometers : \\(XYZ\\) | | XYZ: 100um, Rz: 360 deg | up to 500g | NSLS, SRX | (<a href="#citeproc_bib_item_6">Nazaretski et al. 2022</a>) |
|
||||
| **Parallel XYZ voice coil stage** / Sample | 3 interferometers: \\(XYZ\\) | 100Hz | XYZ: 3mm | up to 350g | Diamond, I14 | (<a href="#citeproc_bib_item_5">Kelly et al. 2022</a>) |
|
||||
| Rz / **Parallel XYZ voice coil stage** / Sample | 3 interferometers: \\(XYZ\\) | 100Hz | YZ: 3mm, Rz: +-110deg | light | LNLS, CARNAUBA | (<a href="#citeproc_bib_item_2">Geraldes et al. 2023</a>) |
|
||||
|
||||
<a id="figure--fig:endstation-nazaretski"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/endstation_nazaretski.png" caption="<span class='figure-number'>Figure 4: </span>Figure caption" >}}
|
||||
|
||||
<a id="figure--fig:endstation-villar"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/endstation_villar.png" caption="<span class='figure-number'>Figure 5: </span>Figure caption" >}}
|
||||
|
||||
<a id="figure--fig:endstation-holler"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/endstation_holler.png" caption="<span class='figure-number'>Figure 6: </span>Figure caption" >}}
|
||||
|
||||
<a id="figure--fig:endstation-engblom"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/endstation_engblom.png" caption="<span class='figure-number'>Figure 7: </span>Figure caption" >}}
|
||||
|
||||
<a id="figure--fig:endstation-kelly"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/endstation_kelly.png" caption="<span class='figure-number'>Figure 8: </span>Figure caption" >}}
|
||||
|
||||
<a id="figure--fig:endstation-geraldes"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/endstation_geraldes.png" caption="<span class='figure-number'>Figure 9: </span>Figure caption" >}}
|
||||
|
||||
|
||||
## Manufacturers {#manufacturers}
|
||||
|
||||
| Manufacturers | Country |
|
||||
|------------------------------------------------------------------|---------|
|
||||
| [Kohzu](https://www.kohzuprecision.com/i/) | Japan |
|
||||
| [PI](https://www.physikinstrumente.com/en/) | USA |
|
||||
| [Attocube](https://www.attocube.com/en/products/nanopositioners) | Germany |
|
||||
| [Newport](https://www.newport.com/c/manual-positioning) | |
|
||||
| [LAB](https://www.labmotionsystems.com/products/z-stages/) | Belgium |
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_1"></a>Engblom, C. 2018. “Nanoprobe Results: Metrology & Control in Stacked Closed-Loop Systems.” In <i>Proc. Of International Conference on Accelerator and Large Experimental Control Systems (ICALEPCS’17)</i>. JACoW. doi:<a href="https://doi.org/10.18429/JACoW-ICALEPCS2017-WEAPL04">10.18429/JACoW-ICALEPCS2017-WEAPL04</a>.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_2"></a>Geraldes, R. R., G. B. Z. L. Moreno, F. R. Lena, E. O. Pereira, M. H. S. da Silva, G. G. Basílio, P. P. R. Proença, et al. 2023. “The High-Dynamic Cryogenic Sample Stage for SAPOTI/CARNAÚBA at Sirius/LNLS.” In <i>Proceedings of XRM2022</i>. doi:<a href="https://doi.org/10.1063/5.0168438">10.1063/5.0168438</a>.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_3"></a>Holler, M., J. Raabe, A. Diaz, M. Guizar-Sicairos, R. Wepf, M. Odstrcil, F. R. Shaik, et al. 2018. “Omny-a Tomography Nano Cryo Stage.” <i>Review of Scientific Instruments</i> 89 (4): 043706. doi:<a href="https://doi.org/10.1063/1.5020247">10.1063/1.5020247</a>.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_4"></a>Holler, M., J. Raabe, R. Wepf, S. H. Shahmoradian, A. Diaz, B. Sarafimov, T. Lachat, H. Walther, and M. Vitins. 2017. “Omny Pin-a Versatile Sample Holder for Tomographic Measurements at Room and Cryogenic Temperatures.” <i>Review of Scientific Instruments</i> 88 (11): 113701. doi:<a href="https://doi.org/10.1063/1.4996092">10.1063/1.4996092</a>.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_5"></a>Kelly, J., A. Male, N. Rubies, D. Mahoney, J. M. Walker, M. A. Gomez-Gonzalez, G. Wilkin, J. E. Parker, and P. D. Quinn. 2022. “The Delta Robot-a Long Travel Nano-Positioning Stage for Scanning X-Ray Microscopy.” <i>Review of Scientific Instruments</i> 93 (4). doi:<a href="https://doi.org/10.1063/5.0084806">10.1063/5.0084806</a>.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_6"></a>Nazaretski, E., D. S. Coburn, W. Xu, J. Ma, H. Xu, R. Smith, X. Huang, et al. 2022. “A New Kirkpatrick-Baez-Based Scanning Microscope for the Submicron Resolution X-Ray Spectroscopy (SRX) Beamline at Nsls-Ii.” <i>Journal of Synchrotron Radiation</i> 29 (5): 1284–91. doi:<a href="https://doi.org/10.1107/s1600577522007056">10.1107/s1600577522007056</a>.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_7"></a>Nazaretski, E., K. Lauer, H. Yan, N. Bouet, J. Zhou, R. Conley, X. Huang, et al. 2015. “Pushing the Limits: An Instrument for Hard X-Ray Imaging below 20 Nm.” <i>Journal of Synchrotron Radiation</i> 22 (2): 336–41. doi:<a href="https://doi.org/10.1107/s1600577514025715">10.1107/s1600577514025715</a>.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_8"></a>Schroer, C. G., M. Seyrich, M. Kahnt, S. Botta, R. Döhrmann, G. Falkenberg, J. Garrevoet, et al. 2017. “PtyNAMi: Ptychographic Nano-Analytical Microscope at PETRA III: Interferometrically Tracking Positions for 3D X-Ray Scanning Microscopy Using a Ball-Lens Retroreflector.” In <i>X-Ray Nanoimaging: Instruments and Methods III</i>. doi:<a href="https://doi.org/10.1117/12.2273710">10.1117/12.2273710</a>.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_9"></a>Schropp, A., R. Döhrmann, S. Botta, D. Brückner, M. Kahnt, M. Lyubomirskiy, C. Ossig, et al. 2020. “Ptynami: Ptychographic Nano-Analytical Microscope.” <i>Journal of Applied Crystallography</i> 53 (4): 957–71. doi:<a href="https://doi.org/10.1107/s1600576720008420">10.1107/s1600576720008420</a>.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_10"></a>Stankevic, T., C. Engblom, F. Langlois, F. Alves, A. Lestrade, N. Jobert, G. Cauchon, U. Vogt, and S. Kubsky. 2017. “Interferometric Characterization of Rotation Stages for X-Ray Nanotomography.” <i>Review of Scientific Instruments</i> 88 (5): 053703. doi:<a href="https://doi.org/10.1063/1.4983405">10.1063/1.4983405</a>.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_11"></a>Villar, F., L. Andre, R. Baker, S. Bohic, J. C. da Silva, C. Guilloud, O. Hignette, et al. 2018. “Nanopositioning for the Esrf Id16a Nano-Imaging Beamline.” <i>Synchrotron Radiation News</i> 31 (5): 9–14. doi:<a href="https://doi.org/10.1080/08940886.2018.1506234">10.1080/08940886.2018.1506234</a>.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_12"></a>Wang, J., Y.-c. K. Chen, Q. Yuan, A. Tkachuk, C. Erdonmez, B. Hornberger, and M. Feser. 2012. “Automated Markerless Full Field Hard X-Ray Microscopic Tomography at Sub-50 Nm 3-Dimension Spatial Resolution.” <i>Applied Physics Letters</i> 100 (14): 143107. doi:<a href="https://doi.org/10.1063/1.3701579">10.1063/1.3701579</a>.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_13"></a>Xu, W., H. Xu, D. Gavrilov, X. Huang, H. Yan, Y. S. Chu, and E. Nazaretski. 2023. “High-speed fly-scan capabilities for x-ray microscopy systems at NSLS-II.” In <i>X-Ray Nanoimaging: Instruments and Methods VI</i>. doi:<a href="https://doi.org/10.1117/12.2675940">10.1117/12.2675940</a>.</div>
|
||||
</div>
|
||||
@@ -0,0 +1,136 @@
|
||||
+++
|
||||
title = "Power Spectral Density"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
: [Signal to Noise Ratio]({{< relref "signal_to_noise_ratio.md" >}})
|
||||
|
||||
Tutorial about Power Spectral Density is accessible [here](https://research.tdehaeze.xyz/spectral-analysis/).
|
||||
|
||||
A good article about how to use the `pwelch` function with Matlab (<a href="#citeproc_bib_item_1">Schmid 2012</a>).
|
||||
|
||||
|
||||
## Parseval's Theorem - Linking the Frequency and Time domain {#parseval-s-theorem-linking-the-frequency-and-time-domain}
|
||||
|
||||
For non-periodic finite duration signals, the energy in the time domain is described by:
|
||||
|
||||
\begin{equation}
|
||||
\text{Energy} = \int\_{-\infty}^\infty x(t)^2 dt
|
||||
\end{equation}
|
||||
|
||||
Parseval's Theorem states that energy in the time domain equals energy in the frequency domain:
|
||||
|
||||
\begin{equation}
|
||||
\text{Energy} = \int\_{-\infty}^{\infty} x(t)^2 dt = \int\_{-\infty}^{\infty} |X(f)|^2 df
|
||||
\end{equation}
|
||||
|
||||
where \\(X(f)\\) is the Fourier transform of the time signal \\(x(t)\\):
|
||||
|
||||
\begin{equation}
|
||||
X(f) = \int\_{-\infty}^{\infty} x(t) e^{-2\pi j f t} dt
|
||||
\end{equation}
|
||||
|
||||
|
||||
## Power Spectral Density function (PSD) {#power-spectral-density-function--psd}
|
||||
|
||||
The power distribution over frequency of a time signal \\(x(t)\\) is described by the PSD denoted the \\(S\_x(f)\\).
|
||||
A PSD is a power density function with units \\([\text{SI}^2/Hz]\\), meaning that the area underneath the PSD curve equals the power (units \\([\text{SI}^2]\\)) of the signal (SI is the unit of the signal, e.g. \\(m/s\\)).
|
||||
|
||||
Using the definition of signal power \\(\bar{x^2}\\) and Parseval's theorem, we can link power in the time domain with power in the frequency domain:
|
||||
|
||||
\begin{equation}
|
||||
\text{power} = \lim\_{T \to \infty} \frac{1}{2T} \int\_{-T}^{T} x\_T(t)^2 dt = \lim\_{T \to \infty} \frac{1}{2T} \int\_{-\infty}^{\infty} |X\_T(f)|^2 df = \int\_{-\infty}^{\infty} \left( \lim\_{T \to \infty} \frac{|X\_T(f)|^2}{2T} \right) df
|
||||
\end{equation}
|
||||
|
||||
where \\(X\_T(f)\\) denotes the Fourier transform of \\(x\_T(t)\\), which equals \\(x(t)\\) on the interval \\(-T \le t \le T\\) and is zero outside this interval.
|
||||
|
||||
This term is referred to as the two-sided spectral density:
|
||||
|
||||
\begin{equation}
|
||||
S\_{x,two} (f) = \lim\_{T \to \infty} \frac{|X\_T(f)|^2}{2T}, \quad -\infty \le f \le \infty
|
||||
\end{equation}
|
||||
|
||||
In practice, the **one sided PSD** is used, which is only defined on the positive frequency axis but also contains all the power.
|
||||
It is defined as:
|
||||
|
||||
\begin{equation}
|
||||
S\_{x}(f) = \lim\_{T \to \infty} \frac{|X\_T(f)|^2}{T}, \quad 0 \le f \le \infty
|
||||
\end{equation}
|
||||
|
||||
For discrete time signals, the one-sided PSD estimate is defined as:
|
||||
|
||||
\begin{equation}
|
||||
\hat{S}(f\_k) = \frac{|X\_L(f\_k)|^2}{L T\_s}
|
||||
\end{equation}
|
||||
|
||||
where \\(L\\) equals the number of time samples and \\(T\_s\\) the sample time, \\(X\_L(f\_k)\\) is the N-point discrete Fourier Transform of the discrete time signal \\(x\_L[n]\\) containing \\(L\\) samples:
|
||||
|
||||
\begin{equation}
|
||||
X\_L(f\_k) = \sum\_{n = 0}^{N-1} x\_L[n] e^{-j 2 \pi k n/N}
|
||||
\end{equation}
|
||||
|
||||
|
||||
## Matlab Code for computing the PSD and CPS {#matlab-code-for-computing-the-psd-and-cps}
|
||||
|
||||
Let's compute the PSD of a signal by "hand".
|
||||
The signal is defined below.
|
||||
|
||||
```matlab
|
||||
%% Signal generation
|
||||
T_s = 1e-3; % Sampling Time [s]
|
||||
t = T_s:T_s:100; % Time vector [s]
|
||||
L = length(t);
|
||||
|
||||
x = lsim(1/(1 + s/2/pi/5), randn(1, L), t);
|
||||
```
|
||||
|
||||
The computation is performed using the `fft` function.
|
||||
|
||||
```matlab
|
||||
%% Parameters
|
||||
T_r = L*T_s; % signal time range
|
||||
d_f = 1/T_r; % width of frequency grid
|
||||
F_s = 1/T_s; % sample frequency
|
||||
F_n = F_s/2; % Nyquist frequency
|
||||
F = [0:d_f:F_n]; % one sided frequency grid
|
||||
|
||||
% Discrete Time Fourier Transform Wxx
|
||||
Wxx = fft(x - mean(x))/L;
|
||||
|
||||
% Two-sided Power Spectrum Pxx [SI^2]
|
||||
Pxx = Wxx.*conj(Wxx);
|
||||
|
||||
% Two-sided Power Spectral Density Sxx_t [SI^2/Hz]
|
||||
Sxx_t = Pxx/d_f;
|
||||
|
||||
% One-sided Power Spectral Density Sxx_o [SI^2/Hz] defined on F
|
||||
Sxx_o = 2*Sxx_t(1:L/2+1);
|
||||
```
|
||||
|
||||
The result is shown in [Figure 1](#figure--fig:psd-manual-example).
|
||||
|
||||
<a id="figure--fig:psd-manual-example"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/psd_manual_example.png" caption="<span class='figure-number'>Figure 1: </span>Amplitude Spectral Density with manual computation" >}}
|
||||
|
||||
This can also be done using the `pwelch` function which integrated a "window" that permits to do some averaging.
|
||||
|
||||
```matlab
|
||||
%% Computation using pwelch function
|
||||
[pxx, f] = pwelch(x, hanning(ceil(5/T_s)), [], [], 1/T_s);
|
||||
```
|
||||
|
||||
The comparison of the two method is shown in [Figure 2](#figure--fig:psd-comp-pwelch-manual-example).
|
||||
|
||||
<a id="figure--fig:psd-comp-pwelch-manual-example"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/psd_comp_pwelch_manual_example.png" caption="<span class='figure-number'>Figure 2: </span>Amplitude Spectral Density with manual computation" >}}
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_1"></a>Schmid, Hanspeter. 2012. “How to Use the Fft and Matlab’s Pwelch Function for Signal and Noise Simulations and Measurements.” <i>Institute of Microelectronics</i>.</div>
|
||||
</div>
|
||||
@@ -0,0 +1,14 @@
|
||||
+++
|
||||
title = "Precision Engineering"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
@@ -0,0 +1,168 @@
|
||||
+++
|
||||
title = "Quadrant Photodiodes"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
category = "equipment"
|
||||
+++
|
||||
|
||||
Tags
|
||||
: [Position Sensors]({{< relref "position_sensors.md" >}}), [Optics]({{< relref "optics.md" >}})
|
||||
|
||||
|
||||
## Working principle {#working-principle}
|
||||
|
||||
<a id="figure--fig:quadrant-photodiode-schematic"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/quadrant_photodiode_schematic.png" caption="<span class='figure-number'>Figure 1: </span>Schematic of the Quadrant Photodiode" >}}
|
||||
|
||||
The \\([x,y]\\) position of the beam on the quadrant photodiode can be estimated using the following equations:
|
||||
|
||||
\begin{align}
|
||||
\sigma\_x &= \frac{(I\_B + I\_D) - (I\_A + I\_C)}{I\_A + I\_B + I\_C + I\_D} = \frac{I\_B + I\_D}{I\_A + I\_B + I\_C + I\_D} - 1 \\\\
|
||||
\sigma\_y &= \frac{(I\_A + I\_B) - (I\_C + I\_D)}{I\_A + I\_B + I\_C + I\_D} = \frac{I\_A + I\_B}{I\_A + I\_B + I\_C + I\_D} - 1
|
||||
\end{align}
|
||||
|
||||
<a id="figure--fig:quadrant-photodiode-spot-size"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/quadrant_photodiode_relation_meas.png" caption="<span class='figure-number'>Figure 2: </span>Relation between the X position of the spot and the estimated measurement \\(\sigma\_x\\)" >}}
|
||||
|
||||
This is true when the spot is near the center of the four quadrants (linear region).
|
||||
|
||||
<a id="figure--fig:quadrant-photodiode-spot-size"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/quadrant_photodiode_spot_size.jpg" caption="<span class='figure-number'>Figure 3: </span>Effect of the spot size on the sensitibility and measurement range" >}}
|
||||
|
||||
Basic requirements (taken from [here](https://www.aptechnologies.co.uk/home/support/photodiodes)):
|
||||
|
||||
- detector gap < spot size < detector size
|
||||
- positional range < spot size
|
||||
- positional range is proportional to the spot size
|
||||
- positional resolution is inversely proportional to the spot size
|
||||
|
||||
Estimation of the linear region.
|
||||
|
||||
The relation between the spot size and the quadrant photodiode sensitivity is well explained in (<a href="#citeproc_bib_item_2">Lee et al. 2010</a>).
|
||||
|
||||
Usually, single mode laser are used such that the beam profile can well be approximated by a Gaussian distribution.
|
||||
The irradiance distribution is then:
|
||||
|
||||
\begin{equation}
|
||||
I( r) = \frac{P}{\pi w^2} e^{-\frac{r^2}{w^2}}
|
||||
\end{equation}
|
||||
|
||||
with:
|
||||
|
||||
- \\(r\\) the radius
|
||||
- \\(P\\) the overall light source optical power
|
||||
- \\(w\\) the light spot radius for which the irradiance drops to the \\(1/e\\) value of its central value
|
||||
|
||||
|
||||
## Estimation of photodiode gain {#estimation-of-photodiode-gain}
|
||||
|
||||
It is function of:
|
||||
|
||||
- the spot size
|
||||
- the gain size
|
||||
|
||||
Spot size of collimated bean at focal plane of a lens ([link](https://www.gentec-eo.com/blog/spot-size-of-laser-beam)).
|
||||
|
||||
See:
|
||||
|
||||
- (<a href="#citeproc_bib_item_5">Ng, Tan, and Foo 2007</a>)
|
||||
- (<a href="#citeproc_bib_item_4">Manojlović 2011</a>)
|
||||
- (<a href="#citeproc_bib_item_6">Wu et al. 2015</a>)
|
||||
- (<a href="#citeproc_bib_item_1">Azaryan et al. 2019</a>)
|
||||
- (<a href="#citeproc_bib_item_3">Li et al. 2019</a>)
|
||||
|
||||
|
||||
## Electrical Readout {#electrical-readout}
|
||||
|
||||
[Transimpedance Amplifiers]({{< relref "transimpedance_amplifiers.md" >}}) amplifiers are required (schematic shown in [Figure 4](#figure--fig:quadrant-transresistance-amplifier)).
|
||||
|
||||
- Trade-off between gain / noise / bandwidth (see [The art of electronics - third edition]({{< relref "horowitz15_art_of_elect_third_edition.md" >}}), chapter 8.11.4).
|
||||
|
||||
The amplifier in [Figure 4](#figure--fig:quadrant-transresistance-amplifier) produces a voltage:
|
||||
|
||||
\begin{equation}
|
||||
V\_{\text{out}} = -I\_{\text{sig}} R\_f
|
||||
\end{equation}
|
||||
|
||||
So the gain of the amplifier is simply \\(-R\_f\\) in [V/A].
|
||||
|
||||
The feedback resistor creates a Johnson noise that corresponds to a current noise:
|
||||
|
||||
\begin{equation}
|
||||
i\_{n} = \sqrt{4kT/R\_f} \quad [A/\sqrt{Hz}]
|
||||
\end{equation}
|
||||
|
||||
This is usually larger than the amplifier input current noise.
|
||||
|
||||
<a id="figure--fig:quadrant-transresistance-amplifier"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/quadrant_transresistance_amplifier.png" caption="<span class='figure-number'>Figure 4: </span>Transimpedance Amplifier; Current in, Voltage out" >}}
|
||||
|
||||
|
||||
## Angle Measurement {#angle-measurement}
|
||||
|
||||
|
||||
### Working Principle {#working-principle}
|
||||
|
||||
Combined with a lens, a quadrant photodiode can become an angular sensor is well located at the focal plane of the lens (see [Figure 5](#figure--fig:quandrant-diode-angle-schematic)).
|
||||
|
||||
The relation between the position \\([y,z]\\) of the quadrant photodiode and the angle of the incident light \\([R\_y, R\_z]\\) is:
|
||||
|
||||
\begin{align}
|
||||
y &= f \cdot R\_z\\\\
|
||||
z &= -f \cdot R\_y
|
||||
\end{align}
|
||||
|
||||
<a id="figure--fig:quandrant-diode-angle-schematic"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/quandrant_diode_angle_schematic.png" caption="<span class='figure-number'>Figure 5: </span>Optical schematic of combination of a quandrant photodiode with a lens" >}}
|
||||
|
||||
|
||||
### Sensitivity of beam translation {#sensitivity-of-beam-translation}
|
||||
|
||||
The sensitivity to translation of the beam depends on how well the quadrant photodiode is located at the focal plane of the lens.
|
||||
If we note \\(\Delta x\\) the distance between the focal plane and the quadrant plane, the sensitivity to a \\(\Delta z\\) motion of the beam is:
|
||||
|
||||
\begin{equation}
|
||||
z = \Delta x \cdot \Delta z
|
||||
\end{equation}
|
||||
|
||||
Therefore, the ratio \\(f/\Delta x\\) gives the ratio of the sensitivity to beam angle to the sensitivity of beam translation.
|
||||
|
||||
<div class="exampl">
|
||||
|
||||
Take a lens with focal of \\(f = 500\\,mm\\) and say the quadrant photodiode is positioned at the focal plane with an accuracy of \\(\Delta x = 1\\,mm\\):
|
||||
|
||||
\begin{equation}
|
||||
\frac{f}{\Delta x} = 500
|
||||
\end{equation}
|
||||
|
||||
This means that \\(1\\,mm\\) of vertical motion of the beam will give the same output than \\(500\\,mrad\\) of rotation of the beam.
|
||||
|
||||
</div>
|
||||
|
||||
<div class="exampl">
|
||||
|
||||
Say be want to determine with which precision the quadrant photodiode should be positioned.
|
||||
We now that the maximum translation of the beam is \\(\Delta z = 1\\,mm\\) and this should have less effect than a beam rotation of \\(R\_y = 10\\,\mu rad\\), then the quadrant photodiode should be position with an accuracy \\(\Delta x\\) of:
|
||||
|
||||
\begin{equation}
|
||||
\Delta x = f \frac{R\_y}{\Delta z} = 1\\,mm, \quad \text{with } f = 0.1\\,m
|
||||
\end{equation}
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_1"></a>Azaryan, N. S., J. A. Budagov, M. V. Lyablin, A. A. Pluzhnikov, B. Di Girolamo, J.-Ch. Gayde, and D. Mergelkuhl. 2019. “Position-Sensitive Photoreceivers: Sensitivity and Detectable Range of Displacements of a Focused Single-Mode Laser Beam.” <i>Physics of Particles and Nuclei Letters</i> 16 (4): 354–76. doi:<a href="https://doi.org/10.1134/s1547477119040058">10.1134/s1547477119040058</a>.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_2"></a>Lee, Eun Joong, Youngok Park, Chul Sung Kim, and Taejoon Kouh. 2010. “Detection Sensitivity of the Optical Beam Deflection Method Characterized with the Optical Spot Size on the Detector.” <i>Current Applied Physics</i> 10 (3): 834–37. doi:<a href="https://doi.org/10.1016/j.cap.2009.10.003">10.1016/j.cap.2009.10.003</a>.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_3"></a>Li, Qing, Shaoxiong Xu, Jiawei Yu, Lingjie Yan, and Yongmei Huang. 2019. “An Improved Method for the Position Detection of a Quadrant Detector for Free Space Optical Communication.” <i>Sensors</i> 19 (1): 175. doi:<a href="https://doi.org/10.3390/s19010175">10.3390/s19010175</a>.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_4"></a>Manojlović, Lazo M. 2011. “Quadrant Photodetector Sensitivity.” <i>Applied Optics</i> 50 (20). Optical Society of America: 3461–69.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_5"></a>Ng, T.W., H.Y. Tan, and S.L. Foo. 2007. “Small Gaussian Laser Beam Diameter Measurement Using a Quadrant Photodiode.” <i>Optics &Amp; Laser Technology</i> 39 (5): 1098–1100. doi:<a href="https://doi.org/10.1016/j.optlastec.2006.06.001">10.1016/j.optlastec.2006.06.001</a>.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_6"></a>Wu, Jiabin, Yunshan Chen, Shijie Gao, Yimang Li, and Zhiyong Wu. 2015. “Improved Measurement Accuracy of Spot Position on an Ingaas Quadrant Detector.” <i>Applied Optics</i> 54 (27). Optical Society of America: 8049–54.</div>
|
||||
</div>
|
||||
@@ -0,0 +1,38 @@
|
||||
+++
|
||||
title = "Reference Books"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
|
||||
## Here are my favorite books {#here-are-my-favorite-books}
|
||||
|
||||
(<a href="#citeproc_bib_item_8">Steinbuch and Oomen 2016</a>)
|
||||
(<a href="#citeproc_bib_item_9">Taghirad 2013</a>)
|
||||
(<a href="#citeproc_bib_item_5">Lurie 2012</a>)
|
||||
(NO_ITEM_DATA:skogestad05_multiv_feedb_contr)
|
||||
(<a href="#citeproc_bib_item_7">Schmidt, Schitter, and Rankers 2014</a>)
|
||||
(<a href="#citeproc_bib_item_6">Preumont 2018</a>)
|
||||
(<a href="#citeproc_bib_item_3">Leach 2014</a>)
|
||||
(<a href="#citeproc_bib_item_1">Ewins 2000</a>)
|
||||
(<a href="#citeproc_bib_item_4">Leach and Smith 2018</a>)
|
||||
(<a href="#citeproc_bib_item_2">Horowitz 2015</a>)
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_1"></a>Ewins, D. J. 2000. <i>Modal Testing: Theory, Practice and Application, Second Edition</i>. <i>Research Studies Press</i>. Baldock, Hertfordshire, England Philadelphia, PA: Wiley-Blackwell.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_2"></a>Horowitz, Paul. 2015. <i>The Art of Electronics - Third Edition</i>. New York, NY, USA: Cambridge University Press.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_3"></a>Leach, Richard. 2014. <i>Fundamental Principles of Engineering Nanometrology</i>. Elsevier. doi:<a href="https://doi.org/10.1016/c2012-0-06010-3">10.1016/c2012-0-06010-3</a>.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_4"></a>Leach, Richard, and Stuart T. Smith. 2018. <i>Basics of Precision Engineering - 1st Edition</i>. CRC Press.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_5"></a>Lurie, B. J. 2012. <i>Classical Feedback Control : with MATLAB and Simulink</i>. Boca Raton, FL: CRC Press.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_6"></a>Preumont, A. 2018. <i>Vibration Control of Active Structures - Fourth Edition</i>. Solid Mechanics and Its Applications. Springer International Publishing. doi:<a href="https://doi.org/10.1007/978-3-319-72296-2">10.1007/978-3-319-72296-2</a>.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_7"></a>Schmidt, R Munnig, Georg Schitter, and Adrian Rankers. 2014. <i>The Design of High Performance Mechatronics - 2nd Revised Edition</i>. Ios Press.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_8"></a>Steinbuch, Maarten, and Tom Oomen. 2016. “Model-Based Control for High-Tech Mechatronics Systems.” CRC Press/Taylor & Francis.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_9"></a>Taghirad, H. 2013. <i>Parallel Robots : Mechanics and Control</i>. Boca Raton, FL: CRC Press.</div>
|
||||
<div class="csl-entry">NO_ITEM_DATA:skogestad05_multiv_feedb_contr</div>
|
||||
</div>
|
||||
@@ -0,0 +1,50 @@
|
||||
+++
|
||||
title = "Reference Tracking"
|
||||
author = ["Dehaeze Thomas"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
|
||||
## Following Ramp inputs with one integrator {#following-ramp-inputs-with-one-integrator}
|
||||
|
||||
Let's suppose a static plant and a controller with one integrator with a crossover frequency of \\(\omega\_c = 10\cdot 2\pi\\) (i.e. 10Hz).
|
||||
|
||||
```matlab
|
||||
G = tf(1); % Plant
|
||||
K = 2*pi*10/s; % Controller
|
||||
```
|
||||
|
||||
The transfer function from the reference to the output is:
|
||||
\\[ T(s) = \frac{G(s)K(s)}{1 + G(s)K(s)} \\]
|
||||
|
||||
```matlab
|
||||
T = G*K/(1 + G*K); % Transmissibility
|
||||
```
|
||||
|
||||
The reference signal is a ramp with a "velocity" \\(r\_v = 1\\) unit/sec.
|
||||
|
||||
```matlab
|
||||
% Time domain simulation
|
||||
Ts = 1e-4; % Sampling Time [s]
|
||||
t = 0:Ts:0.4; % Time vector [s]
|
||||
r = zeros(size(t)); % Sepoint
|
||||
r(t>0.1) = t(t>0.1)-0.1;
|
||||
y = lsim(T, r, t); % Output
|
||||
```
|
||||
|
||||
<a id="figure--fig:reference-tracking-ramp-one-int"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/reference_tracking_ramp_one_int.png" caption="<span class='figure-number'>Figure 1: </span>Comparison of the setpoint and the plant output for a ramp with only one integrator in the loop" >}}
|
||||
|
||||
The error converges to a constant equal to \\(\frac{r\_v}{\omega\_c} \approx 0.016\\).
|
||||
|
||||
The output "lags" behind the reference by \\(\frac{1}{\omega\_c}\\) in seconds.
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user