Update Content - 2023-06-20

This commit is contained in:
Thomas Dehaeze 2023-06-20 15:54:51 +02:00
parent 460b4d348e
commit 4c860a5d85
15 changed files with 259 additions and 56 deletions

View File

@ -224,7 +224,7 @@ The wave propagation through an elastic material can be qualitatively explained
<a id="figure--fig:schmidt20-mechanical-wave"></a>
{{< figure src="/ox-hugo/schmidt20_mechanical_wave.svg" caption="<span class=\"figure-number\">Figure 1: </span>Lumped element model of one wavelength of a mechanical wave." >}}
{{< figure src="/ox-hugo/schmidt20_mechanical_wave.svg" caption="<span class=\"figure-number\">Figure 2: </span>Lumped element model of one wavelength of a mechanical wave." >}}
To explain the principle of energy transfer, the longitudinal wave is taken as example.
When a movement of mass \\(m\_1\\) is introduced in the propagation direction of the chain, this will first cause a compression of the elastic coupling \\(k\_1\\).
@ -395,7 +395,7 @@ The values are given in Table [1](#table--tab:relation-slope-decade) for a decad
<a id="table--tab:relation-slope-octave"></a>
<div class="table-caption">
<span class="table-number"><a href="#table--tab:relation-slope-octave">Table 1</a>:</span>
<span class="table-number"><a href="#table--tab:relation-slope-octave">Table 2</a>:</span>
Relation between the order of the slope of a bode plot and the magnitude ration in dB, amplitude ratio and power ration, per <b>octave</b> (\(f_1 = 2 f_2\))
</div>
@ -611,15 +611,15 @@ Finally it can be concluded, that these insights help in designing actively cont
### A Walk around the Control Loop {#a-walk-around-the-control-loop}
Figure [1](#figure--fig:schmidt20-walk-control-loop) shows a basic control loop of a positioning system.
Figure [3](#figure--fig:schmidt20-walk-control-loop) shows a basic control loop of a positioning system.
First, the A/D and D/A converters are used to translate analog signals into time-discrete digital signals and vice versa.
Secondly, the impact locations of several disturbances are shown, which play a large role in determining what reqwuirements the controller needs to fulfil.
The core of the control system is the _plant_, which is the physical system that needs to be controlled.
<a id="table--tab:walk-control-loop"></a>
<div class="table-caption">
<span class="table-number"><a href="#table--tab:walk-control-loop">Table 1</a>:</span>
Symbols used in Figure <a href="#orge5a2ac8">3</a>
<span class="table-number"><a href="#table--tab:walk-control-loop">Table 3</a>:</span>
Symbols used in Figure <a href="#org8d343af">3</a>
</div>
| Symbol | Meaning | Unit |
@ -635,14 +635,14 @@ The core of the control system is the _plant_, which is the physical system that
<a id="figure--fig:schmidt20-walk-control-loop"></a>
{{< figure src="/ox-hugo/schmidt20_walk_control_loop.svg" caption="<span class=\"figure-number\">Figure 1: </span>Block diagram of a motion control system, including feedforward and feedback control." >}}
{{< figure src="/ox-hugo/schmidt20_walk_control_loop.svg" caption="<span class=\"figure-number\">Figure 3: </span>Block diagram of a motion control system, including feedforward and feedback control." >}}
The plant combines the mechanical structure, amplifiers and actuators, as they all deal with energy conversion in close interaction (Figure [1](#figure--fig:schmidt20-energy-actuator-system)).
The plant combines the mechanical structure, amplifiers and actuators, as they all deal with energy conversion in close interaction (Figure [4](#figure--fig:schmidt20-energy-actuator-system)).
They interact in both directions in such a way that each element not only determines the input of the next element, but also influences the previous element by its dynamic load.
<a id="figure--fig:schmidt20-energy-actuator-system"></a>
{{< figure src="/ox-hugo/schmidt20_energy_actuator_system.svg" caption="<span class=\"figure-number\">Figure 1: </span>The energy converting part of a mechatronic system consists of a the amplifier, the actuator and the mechanical structure." >}}
{{< figure src="/ox-hugo/schmidt20_energy_actuator_system.svg" caption="<span class=\"figure-number\">Figure 4: </span>The energy converting part of a mechatronic system consists of a the amplifier, the actuator and the mechanical structure." >}}
#### Poles and Zeros in Motion Control {#poles-and-zeros-in-motion-control}
@ -671,7 +671,7 @@ Fortunately the effect is mostly so small that it can be neglected.
#### Overview Feedforward Control {#overview-feedforward-control}
Figure [1](#figure--fig:schmidt20-feedforward-control-diagram) shows the typical basic configuration for feedforward control, which is also called _open-loop control_ as it is equal to a situation where the measured output is not connected to the input for feedback.
Figure [5](#figure--fig:schmidt20-feedforward-control-diagram) shows the typical basic configuration for feedforward control, which is also called _open-loop control_ as it is equal to a situation where the measured output is not connected to the input for feedback.
The reference signal \\(r\\) [m] is applied to the controller, which as a reference transfer function \\(C\_{ff}(s)\\) in [N/m].
The output \\(u\\) in [N] of the controller is connected to the input of the motion system, which has a transfer function \\(G(s)\\) in [m/N] giving the output \\(x\\) in [m].
@ -685,7 +685,7 @@ G\_{t,ff}(s) = \frac{x}{r} = C\_{ff}(s)G(s) = 1 \quad \Longrightarrow \quad C\_{
<a id="figure--fig:schmidt20-feedforward-control-diagram"></a>
{{< figure src="/ox-hugo/schmidt20_feedforward_control_diagram.svg" caption="<span class=\"figure-number\">Figure 1: </span>Block diagram of a feedforward controller motion system with one input and output (SISO)." >}}
{{< figure src="/ox-hugo/schmidt20_feedforward_control_diagram.svg" caption="<span class=\"figure-number\">Figure 5: </span>Block diagram of a feedforward controller motion system with one input and output (SISO)." >}}
<div class="important">
@ -715,7 +715,7 @@ The drawbacks and limitations of feedforward control are:
In feedback control the actuator status of the motion system is monitored by a sensor and the controller generates a control action based on the difference between the desired motion (reference signal) and the actuator system status (sensor signal).
The block diagram of Figure [1](#figure--fig:schmidt20-feedback-control-diagram) shows a SISO feedback loop for a motion system without the A/D and D/A converters.
The block diagram of Figure [6](#figure--fig:schmidt20-feedback-control-diagram) shows a SISO feedback loop for a motion system without the A/D and D/A converters.
The output \\(x\\) in [m] is the total motion of the plant on all its parts and details, while \\(y\\) is the measured motion with a measured value \\(y\_m\\) measured on a selected location in the plant.
This measured is compared with \\(r\_f\\), which is the reference \\(r\\) after filtering.
The result of this comparison is used as input for the feedback controller.
@ -728,7 +728,7 @@ The transfer function of any input to any output in a closed-loop feedback contr
<a id="figure--fig:schmidt20-feedback-control-diagram"></a>
{{< figure src="/ox-hugo/schmidt20_feedback_control_diagram.svg" caption="<span class=\"figure-number\">Figure 1: </span>Block diagram of a SISO feedback controlled motion system." >}}
{{< figure src="/ox-hugo/schmidt20_feedback_control_diagram.svg" caption="<span class=\"figure-number\">Figure 6: </span>Block diagram of a SISO feedback controlled motion system." >}}
In control design, one has the freedom to choose \\(F(s)\\) and particularly \\(C\_{fb}(s)\\) such that the total transfer function fulfills the desired specifications.
Feedback control allows to directly place the system poles at values that are more useful for the operation of the motion system that their natural locations.
@ -765,7 +765,7 @@ Also, some pitfalls have to be dealt with:
<a id="table--tab:feedback-feedforward-sum"></a>
<div class="table-caption">
<span class="table-number"><a href="#table--tab:feedback-feedforward-sum">Table 1</a>:</span>
<span class="table-number"><a href="#table--tab:feedback-feedforward-sum">Table 4</a>:</span>
Summary of Feedback and Feedforward control
</div>
@ -789,11 +789,11 @@ Also, some pitfalls have to be dealt with:
#### Model-Based Feedforward Control {#model-based-feedforward-control}
In the following an example of a model-based feedforward controller is introduced.
The measured frequency-response of the scanning unit taken as as an example is shown in Figure [1](#figure--fig:schmidt20-bode-plot-scanning).
The measured frequency-response of the scanning unit taken as as an example is shown in Figure [7](#figure--fig:schmidt20-bode-plot-scanning).
<a id="figure--fig:schmidt20-bode-plot-scanning"></a>
{{< figure src="/ox-hugo/schmidt20_bode_plot_scanning.svg" caption="<span class=\"figure-number\">Figure 1: </span>Bode plot of a piezoelectric-actuator based scanning unit for nanometer resolution positioning. It shows the measured response (solid line) and the second order model, which is fitted for the low-frewquency system behaviour (dashed line)." >}}
{{< figure src="/ox-hugo/schmidt20_bode_plot_scanning.svg" caption="<span class=\"figure-number\">Figure 7: </span>Bode plot of a piezoelectric-actuator based scanning unit for nanometer resolution positioning. It shows the measured response (solid line) and the second order model, which is fitted for the low-frewquency system behaviour (dashed line)." >}}
A mathematical model of a seconder-order mass-spring system with a force input is fitted to this measured response:
@ -809,7 +809,7 @@ This means that the transfer function of the feedforward controller is:
C\_{ff}(s) = \frac{s^2 + 2 \xi\_f \omega\_0 s + \omega\_0^2}{\omega\_0^2}
\end{equation}
However, such controller needs to be modified in such a way that it becomes realizable.
However, such controller needs to be modified in such a way that it becomes _realizable_.
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 high frequency eigen-modes.
In order to realize this controller, first two poles have to be added:
@ -834,12 +834,12 @@ G\_{t,ff}(s) &= G(s)G\_{ff}(s) \\\\
&= \frac{C\_f}{(s + \omega\_0){s^2 + 2 \omega\_0 s + \omega\_0^2}}
\end{align}
The bode plot of the resulting dynamics is shown in Figure [1](#figure--fig:schmidt20-bode-plot-feedfoward-example).
The bode plot of the resulting dynamics is shown in Figure [8](#figure--fig:schmidt20-bode-plot-feedfoward-example).
The controlled system has low-pass characteristics, rolling of at the scanner's natural frequency.
<a id="figure--fig:schmidt20-bode-plot-feedfoward-example"></a>
{{< figure src="/ox-hugo/schmidt20_bode_plot_feedfoward_example.svg" caption="<span class=\"figure-number\">Figure 1: </span>Bode plot of the feedforward-controlled scanning unit" >}}
{{< figure src="/ox-hugo/schmidt20_bode_plot_feedfoward_example.svg" caption="<span class=\"figure-number\">Figure 8: </span>Bode plot of the feedforward-controlled scanning unit" >}}
#### Input-Shaping {#input-shaping}
@ -855,16 +855,16 @@ The oscillation caused by each individual step are 180 degrees out of phase and
This method is clearly very different form pole-zero cancellation.
In the frequency domain, these sampled adaptations to the input create a frequency spectrum with a multiple of notch filters at the harmonic of the frequency where these adaptations are applied.
Applying input-shaping to the triangular scanning signal results in the introduction of a plateau instead of the sharp peak, where the width of the plateau corresponds to half the period of the scanner's resonance as can be seen in Figure [1](#figure--fig:schmidt20-input-shaping-example).
Applying input-shaping to the triangular scanning signal results in the introduction of a plateau instead of the sharp peak, where the width of the plateau corresponds to half the period of the scanner's resonance as can be seen in Figure [9](#figure--fig:schmidt20-input-shaping-example).
<a id="figure--fig:schmidt20-input-shaping-example"></a>
{{< figure src="/ox-hugo/schmidt20_input_shaping_example.svg" caption="<span class=\"figure-number\">Figure 1: </span>Input-shaping control of the triangular scanning signal in a scanning probe microscope." >}}
{{< figure src="/ox-hugo/schmidt20_input_shaping_example.svg" caption="<span class=\"figure-number\">Figure 9: </span>Input-shaping control of the triangular scanning signal in a scanning probe microscope." >}}
#### Adaptive Feedforward Control {#adaptive-feedforward-control}
Both examples of feedforward control, the model-based pole-zero cancellation and the input-shaping, only work reliably as long as the dynamic properties of the total plant are known and remain constant.
Both examples of feedforward control, the model-based pole-zero cancellation and the input-shaping, only work reliably as long as the dynamic properties of the total plant are known and _remain constant_.
There is always some deviation between the parameters in the model and the reality.
This deviation can be partly solved by _adaptive feedforward control_, adapting the feedforward signal by measuring the real behavior of the system.
This method requires a sensor to obtain information about the response of the system and for that reason it is often applied in combination with feedback.
@ -885,13 +885,13 @@ The limitations of the actuators and electronics in a controlled motion system a
Of at least the levels of Jerk and preferable also Snap should be limited.
The standard method to cope with these limitations involves shaping the input of a mechatronic motion system by means of _trajectory profile generation_ or _path-planning_.
Figure [1](#figure--fig:schmidt20-trajectory-profile) shows a fourth order trajectory profile of a displacement, which means that all derivatives including the fourth derivative are defined in the path planning.
Figure [10](#figure--fig:schmidt20-trajectory-profile) shows a fourth order trajectory profile of a displacement, which means that all derivatives including the fourth derivative are defined in the path planning.
A third order trajectory would show a square profile for the jerk indicating an infinite Snap and the round of the acceleration would be gone.
A second order trajectory would show a square acceleration profile with infinite Jerk and sharp edges on the velocity.
<a id="figure--fig:schmidt20-trajectory-profile"></a>
{{< figure src="/ox-hugo/schmidt20_trajectory_profile.svg" caption="<span class=\"figure-number\">Figure 1: </span>Figure caption" >}}
{{< figure src="/ox-hugo/schmidt20_trajectory_profile.svg" caption="<span class=\"figure-number\">Figure 10: </span>Figure caption" >}}
### Feedback Control {#feedback-control}
@ -911,10 +911,10 @@ All these input signals, whether desired of undesired, are treated by the feedba
<a id="figure--fig:schmidt20-feedback-full-simplified"></a>
{{< figure src="/ox-hugo/schmidt20_feedback_full_simplified.svg" caption="<span class=\"figure-number\">Figure 1: </span>Full and simplified representation of a feedback loop in order to determine the influence of the reference signal and most important disturbance sources on real motion output of the plant \\(x\\), the feedback controller output \\(u\\) and the measured motion output \\(y\\). \\(y\_m = y\\) when the measurement system is set at unity gain and the sensor disturbance is included in the output disturbance." >}}
{{< figure src="/ox-hugo/schmidt20_feedback_full_simplified.svg" caption="<span class=\"figure-number\">Figure 11: </span>Full and simplified representation of a feedback loop in order to determine the influence of the reference signal and most important disturbance sources on real motion output of the plant \\(x\\), the feedback controller output \\(u\\) and the measured motion output \\(y\\). \\(y\_m = y\\) when the measurement system is set at unity gain and the sensor disturbance is included in the output disturbance." >}}
Several standard sensitivity functions have been defined to quantify the performance of feedback controlled dynamic systems.
There are derived from a simplified version of the generic feedback loop as shown in Figure [1](#figure--fig:schmidt20-feedback-full-simplified).
There are derived from a simplified version of the generic feedback loop as shown in Figure [11](#figure--fig:schmidt20-feedback-full-simplified).
The first simplification is made by approximating the measurement system to have a unity-gain transfer function.
For further simplification the sensor disturbance in the measurement system is included in the output disturbance \\(n\\), thereby defining the output of the system \\(y\\) as the measured output.
With this simplified model, the transfer functions of the different inputs of the system to three relevant output variables in the loop are written down in a set of equations.
@ -995,7 +995,7 @@ To achieve sufficient robustness against instability in closed-loop feedback con
The condition for robustness of closed-loop stability is that the total phase-lag of the **total feedback-loop**, consisting of the feedback controller in series with the mechatronic system, must be less than 180 degrees in the frequency region of the _unity-gain cross-over frequency_.
The Nyquist plot of the feedback loop, like the example shown in Figure [1](#figure--fig:schmidt20-nyquist-plot-stable), is most appropriate to analyze the robustness on stability of a feedback system.
The Nyquist plot of the feedback loop, like the example shown in Figure [12](#figure--fig:schmidt20-nyquist-plot-stable), is most appropriate to analyze the robustness on stability of a feedback system.
It is an analysis tool that shows the frequency response of the **feedback-loop** combining magnitude and phase in one plot.
In this figure, two graphs are shown, designed for a different purpose.
The first graph from the left shows margin circles related to the capability of the closed-loop feedback controlled system to follow a reference according to the complementary sensitivity.
@ -1003,9 +1003,9 @@ The second graph shows a margin circle related to the capability of the closed-l
<a id="figure--fig:schmidt20-nyquist-plot-stable"></a>
{{< figure src="/ox-hugo/schmidt20_nyquist_plot_stable.svg" caption="<span class=\"figure-number\">Figure 1: </span>Nyquist plot of the feedback-loop response of a stable feedback controlled motion system. Stability is guaranteed as the \\(-1\\) point is kept at the left hand side of the feedback loop repsonse line upon passing with increased frequency, even though the phase-lag is more than 180 degrees at low frequencies." >}}
{{< figure src="/ox-hugo/schmidt20_nyquist_plot_stable.svg" caption="<span class=\"figure-number\">Figure 12: </span>Nyquist plot of the feedback-loop response of a stable feedback controlled motion system. Stability is guaranteed as the \\(-1\\) point is kept at the left hand side of the feedback loop repsonse line upon passing with increased frequency, even though the phase-lag is more than 180 degrees at low frequencies." >}}
Three values are shown in Figure [1](#figure--fig:schmidt20-nyquist-plot-stable) related to the robustness of the closed-loop feedback system:
Three values are shown in Figure [12](#figure--fig:schmidt20-nyquist-plot-stable) related to the robustness of the closed-loop feedback system:
- **The gain margin** determines by which factor the feedback loop gain additionally can increase before the closed-loop goes unstable.
- **The phase margin** determines how much additional phase-lab at the unity-gain cross-over frequency is acceptable before the closed-loop system becomes unstable.
@ -1018,14 +1018,14 @@ Higher margins corresponds to a higher level of damping.
The Nyquist plot has one significant disadvantage as it does not show directly the frequency along the plot.
For that reason many designers prefer to use the Bode plot.
Fortunately it is also possible to indicate the phase and gain margin in the Bode plot as is shown in Figure [1](#figure--fig:schmidt20-phase-gain-margin-bode).
Fortunately it is also possible to indicate the phase and gain margin in the Bode plot as is shown in Figure [13](#figure--fig:schmidt20-phase-gain-margin-bode).
In many not too complicated cases, these two margins are sufficient to tune a feedback motion controller.
In more complicated control systems, it remains useful to also use the Nyquist plot as it also gives the Modulus margin.
<a id="figure--fig:schmidt20-phase-gain-margin-bode"></a>
{{< figure src="/ox-hugo/schmidt20_phase_gain_margin_bode.svg" caption="<span class=\"figure-number\">Figure 1: </span>The gain and phase margin in the Bode plot" >}}
{{< figure src="/ox-hugo/schmidt20_phase_gain_margin_bode.svg" caption="<span class=\"figure-number\">Figure 13: </span>The gain and phase margin in the Bode plot" >}}
### PID Feedback Control {#pid-feedback-control}
@ -1146,11 +1146,11 @@ However, analogue controllers have three important disadvantages:
The digital implementation of filters overcome these problems as well as allows more complex algorithm such as adaptive control, real-time optimization, nonlinear control and learning control methods.
In Figure [1](#figure--fig:schmidt20-digital-implementation) two elements were introduced, the _analogue-to-digital converter_ (ADC) and the _digital-to-analogue converter_ (DAC), which together transfer the signals between the analogue and the digital domain.
In Figure [14](#figure--fig:schmidt20-digital-implementation) two elements were introduced, the _analogue-to-digital converter_ (ADC) and the _digital-to-analogue converter_ (DAC), which together transfer the signals between the analogue and the digital domain.
<a id="figure--fig:schmidt20-digital-implementation"></a>
{{< figure src="/ox-hugo/schmidt20_digital_implementation.svg" caption="<span class=\"figure-number\">Figure 1: </span>Overview of a digital implementation of a feedback controller, emphasising the analog-to-digital and digital-to-analog converters with their required analogue filters" >}}
{{< figure src="/ox-hugo/schmidt20_digital_implementation.svg" caption="<span class=\"figure-number\">Figure 14: </span>Overview of a digital implementation of a feedback controller, emphasising the analog-to-digital and digital-to-analog converters with their required analogue filters" >}}
Anti-aliasing filter is needed at the input of the ADC to limit the frequency range at the input to less than half the sampling frequency, according to the Nyquist-Shannon sampling theorem.
@ -1170,7 +1170,7 @@ Fixed point arithmetic has been favored in the past, because of the less complex
A main drawback is, that the developer must pay attention to truncation, overflow, underflow and round-off errors that occur during mathematical operations.
Fixed points numbers are equally spaced over the whole range, separated by the gap which is denoted by the least significant bit.
The two's complement is the most used format for representing positive and negative numbers.
For representing a fixed point fractional number of two's complement notation, the so called \\(Q\_{m,n}\\) format is often used (see Figure [1](#figure--fig:schmidt20-digital-number-representation)).
For representing a fixed point fractional number of two's complement notation, the so called \\(Q\_{m,n}\\) format is often used (see Figure [15](#figure--fig:schmidt20-digital-number-representation)).
\\(m\\) denotes the number of integer bits and \\(n\\) denotes the number of fractional bits.
\\(m+n+1=N\\) bits are necessary to store a signed \\(Q\_{m,n}\\) number.
If the binary representation is given, the decimal value can be calculated to:
@ -1179,11 +1179,11 @@ If the binary representation is given, the decimal value can be calculated to:
x = \frac{1}{2^n} \left( -2^{N-1 }b\_{N-1} + \sum\_{i=0}^{N-2} 2^i b\_i \right)
\end{equation}
where \\(b\\) indicate the bit position, starting with \\(b\_0\\) from the right in Figure [1](#figure--fig:schmidt20-digital-number-representation).
where \\(b\\) indicate the bit position, starting with \\(b\_0\\) from the right in Figure [15](#figure--fig:schmidt20-digital-number-representation).
<a id="figure--fig:schmidt20-digital-number-representation"></a>
{{< figure src="/ox-hugo/schmidt20_digital_number_representation.svg" caption="<span class=\"figure-number\">Figure 1: </span>Example of a \\(Q\_{m.n}\\) fixed point number representation and a single precision floating point number" >}}
{{< figure src="/ox-hugo/schmidt20_digital_number_representation.svg" caption="<span class=\"figure-number\">Figure 15: </span>Example of a \\(Q\_{m.n}\\) fixed point number representation and a single precision floating point number" >}}
Floating point arithmetic has a higher dynamic range than fixed point arithmetic, given by the largest and smallest number that can be represented, has a higher precision due to the smaller gaps between adjacent numbers, less quantization noise, and it is easier to handle in terms of programming.
A floating point number is represented by a multiplication of a _mantissa_ \\(M\\) with a _base_ \\(b\\) to the power of the _exponent_ \\(q\\):
@ -1203,7 +1203,7 @@ x = -1^i M 2^{E-127}
The term \\(E\\) in the exponent is stored as a positive number ranging from \\(0 \le E < 256\\) with 8 bits.
An offset of \\(-127\\) is added in order to allow very small to very large numbers.
The decimal value is normalized, meaning that only one nonzero digit is noted at the left of the decimal point.
The storage register is divided into three groups, as shown in Figure [1](#figure--fig:schmidt20-digital-number-representation).
The storage register is divided into three groups, as shown in Figure [15](#figure--fig:schmidt20-digital-number-representation).
1 bit represents the sign, the exponent term \\(E\\) is represented by 8 bits, and the mantissa is stored in 23 bits.
@ -1211,33 +1211,33 @@ The storage register is divided into three groups, as shown in Figure [1](#figur
<a id="figure--fig:schmidt20-s-z-planes"></a>
{{< figure src="/ox-hugo/schmidt20_s_z_planes.svg" caption="<span class=\"figure-number\">Figure 1: </span>Corresponding points and area in s and z planes" >}}
{{< figure src="/ox-hugo/schmidt20_s_z_planes.svg" caption="<span class=\"figure-number\">Figure 16: </span>Corresponding points and area in s and z planes" >}}
#### Finite Impulse Response (FIR) Filter {#finite-impulse-response--fir--filter}
<a id="figure--fig:schmidt20-transversal-filter-structure"></a>
{{< figure src="/ox-hugo/schmidt20_transversal_filter_structure.svg" caption="<span class=\"figure-number\">Figure 1: </span>Transversal filter structure of a FIR filter. The term \\(z^{-1}\\) each represent a sampling period which means that \\(b\_0\\) is the gain of the last sample, \\(b\_1\\) is the gain of the precious sample etcetera." >}}
{{< figure src="/ox-hugo/schmidt20_transversal_filter_structure.svg" caption="<span class=\"figure-number\">Figure 17: </span>Transversal filter structure of a FIR filter. The term \\(z^{-1}\\) each represent a sampling period which means that \\(b\_0\\) is the gain of the last sample, \\(b\_1\\) is the gain of the precious sample etcetera." >}}
<a id="figure--fig:schmidt20-optimized-fir-filter-structure"></a>
{{< figure src="/ox-hugo/schmidt20_optimized_fir_filter_structure.svg" caption="<span class=\"figure-number\">Figure 1: </span>Optimized FIR filter structure with symmetric filter coefficients" >}}
{{< figure src="/ox-hugo/schmidt20_optimized_fir_filter_structure.svg" caption="<span class=\"figure-number\">Figure 18: </span>Optimized FIR filter structure with symmetric filter coefficients" >}}
<a id="figure--fig:schmidt20-dir-filter-cascaded-sos"></a>
{{< figure src="/ox-hugo/schmidt20_dir_filter_cascaded_sos.svg" caption="<span class=\"figure-number\">Figure 1: </span>Higher-order FIR filter realization with cascade SOS filter structures" >}}
{{< figure src="/ox-hugo/schmidt20_dir_filter_cascaded_sos.svg" caption="<span class=\"figure-number\">Figure 19: </span>Higher-order FIR filter realization with cascade SOS filter structures" >}}
#### Infinite Impulse Response (IIR) Filter {#infinite-impulse-response--iir--filter}
<a id="figure--fig:schmidt20-irr-structure"></a>
{{< figure src="/ox-hugo/schmidt20_irr_structure.svg" caption="<span class=\"figure-number\">Figure 1: </span>(a:) IIR structure in DF-1 realization and (b:) IIR structure in DF-2 realization" >}}
{{< figure src="/ox-hugo/schmidt20_irr_structure.svg" caption="<span class=\"figure-number\">Figure 20: </span>(a:) IIR structure in DF-1 realization and (b:) IIR structure in DF-2 realization" >}}
<a id="figure--fig:schmidt20-irr-sos-structure"></a>
{{< figure src="/ox-hugo/schmidt20_irr_sos_structure.svg" caption="<span class=\"figure-number\">Figure 1: </span>IIR SOS structure in DF-2 realization" >}}
{{< figure src="/ox-hugo/schmidt20_irr_sos_structure.svg" caption="<span class=\"figure-number\">Figure 21: </span>IIR SOS structure in DF-2 realization" >}}
#### Converting Continuous to Discrete-Time Filters {#converting-continuous-to-discrete-time-filters}

View File

@ -7,7 +7,136 @@ draft = false
Tags
:
## References
Depending on the physical system to be controlled, several feedforward controllers can be used:
- <sec:rigid_body_feedforward>
- <sec:fourth_order_feedforward>
- <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 <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 <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 <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 <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" >}}
<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>, nil. 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 Munnig, Georg Schitter, and Adrian Rankers. 2020. <i>The Design of High Performance Mechatronics - Third Revised Edition</i>. Ios Press.</div>
</div>

View File

@ -11,17 +11,18 @@ Tags
## Comparison {#comparison}
<div class="table-caption">
<span class="table-number">Table 1</span>:
<span class="table-number">Table 1:</span>
Comparison of IRR and FIR Filters
</div>
| | **IIR** | **FIR** |
|-----------|--------------------------------------------|---------------------------------------|
| 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 |
| Linearity | Used for applications which are not linear | Linear-phase characteristic |
| num/den | Both numerator and denominator | Only has numerators |
| | **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.
>

View File

@ -1,5 +1,6 @@
+++
title = "Linear Brushless Motor"
author = ["Dehaeze Thomas"]
draft = false
+++
@ -13,7 +14,7 @@ Tags
- Ironless: less cogging
## Manufacturesr {#manufacturesr}
## Manufacturers {#manufacturers}
| Manufacturers | Country |
|---------------------------------------------------------------------------------------------------------------------------------------------------|-------------|
@ -35,6 +36,14 @@ Tags
| [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}

View File

@ -1,5 +1,6 @@
+++
title = "Motor Commutation"
author = ["Dehaeze Thomas"]
draft = false
+++
@ -16,21 +17,81 @@ Tags
## 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 of a trapezoidal function.
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 1: </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." >}}
{{< 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 2: </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." >}}
{{< 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}

View File

@ -20,6 +20,7 @@ Tags
| [Hamamatsu](https://www.hamamatsu.com/eu/en/product/optical-components/mems-mirror/index.html) | Japan |
| [Maradin](http://www.maradin.co.il/products/mar1100-mems-2d-laser-scanning-mirror/) | Israel |
| [Opus](http://www.opusmicro.com/mems_en.html) | Taiwan |
| [Ulsis](https://www.ulsis.com/) | Turc |
## Bibliography {#bibliography}

View File

@ -1,5 +1,6 @@
+++
title = "Torque Motor"
author = ["Dehaeze Thomas"]
draft = false
+++
@ -17,7 +18,8 @@ Tags
| [TDS](https://www.tds-pp.com/en/products/torque-motors/) | Switzerland |
| [Aerotech](https://www.aerotech.com/product/motors/s-series-brushless-frameless-torque-motor/) | USA |
| [ThinGap](https://www.thingap.com/) | USA |
| [CeleraMotion](https://www.celeramotion.com/applimotion/products/direct-drive-frameless-rotary-motors/) | |
| [CeleraMotion](https://www.celeramotion.com/applimotion/products/direct-drive-frameless-rotary-motors/) | USA |
| [AlliedMotion](https://www.alliedmotion.com/) | USA |
## Bibliography {#bibliography}

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB