Update Content - 2021-05-25
This commit is contained in:
parent
d9ab44ba3c
commit
c2f4ab519a
@ -8,7 +8,7 @@ Tags
|
||||
: [Reference Books]({{< relref "reference_books" >}}), [Dynamic Error Budgeting]({{< relref "dynamic_error_budgeting" >}})
|
||||
|
||||
Reference
|
||||
: ([Schmidt, Schitter, and Rankers 2020](#org9aaa5b5))
|
||||
: ([Schmidt, Schitter, and Rankers 2020](#orgb603526))
|
||||
|
||||
Author(s)
|
||||
: Schmidt, R. M., Schitter, G., & Rankers, A.
|
||||
@ -64,7 +64,7 @@ Year
|
||||
|
||||
#### Electric Field {#electric-field}
|
||||
|
||||
<a id="org9d23fdb"></a>
|
||||
<a id="org68292ec"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/schmidt20_electrical_field.svg" caption="Figure 1: Charges have an electric field" >}}
|
||||
|
||||
@ -395,12 +395,9 @@ Finally it can be concluded, that these insights help in designing actively cont
|
||||
## Motion Control {#motion-control}
|
||||
|
||||
|
||||
### Introduction {#introduction}
|
||||
|
||||
|
||||
### A Walk around the Control Loop {#a-walk-around-the-control-loop}
|
||||
|
||||
Figure [2](#orgee3bd80) shows a basic control loop of a positioning system.
|
||||
Figure [2](#orgc838464) 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.
|
||||
@ -408,7 +405,7 @@ The core of the control system is the _plant_, which is the physical system that
|
||||
<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="#orgee3bd80">2</a>
|
||||
Symbols used in Figure <a href="#orgc838464">2</a>
|
||||
</div>
|
||||
|
||||
| Symbol | Meaning | Unit |
|
||||
@ -422,14 +419,14 @@ The core of the control system is the _plant_, which is the physical system that
|
||||
| \\(y\\) | Measured output motion | [m] |
|
||||
| \\(y\_m\\) | Measurement value | [m] |
|
||||
|
||||
<a id="orgee3bd80"></a>
|
||||
<a id="orgc838464"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/schmidt20_walk_control_loop.svg" caption="Figure 2: 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 [3](#org22eead3)).
|
||||
The plant combines the mechanical structure, amplifiers and actuators, as they all deal with energy conversion in close interaction (Figure [3](#org969d1d3)).
|
||||
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="org22eead3"></a>
|
||||
<a id="org969d1d3"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/schmidt20_energy_actuator_system.svg" caption="Figure 3: The energy converting part of a mechatronic system consists of a the amplifier, the actuator and the mechanical structure." >}}
|
||||
|
||||
@ -460,7 +457,21 @@ Fortunately the effect is mostly so small that it can be neglected.
|
||||
|
||||
#### Overview Feedforward Control {#overview-feedforward-control}
|
||||
|
||||
{{< figure src="/ox-hugo/schmidt20_feedforward_control_diagram.svg" >}}
|
||||
Figure [4](#org3b63c15) 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].
|
||||
In this configuration the feedforward controller acts as a filter, which modifies the reference signal in such a way, that the motion of the controlled mechatronic system follows the reference signal.
|
||||
|
||||
If one would like to achieve perfect control, which means that there is no difference between the reference position and the actual position of the system, the combined transfer function \\(G\_{t,ff}(s)\\) from \\(r\\) to \\(x\\) has to be equal to one:
|
||||
|
||||
\begin{equation}
|
||||
G\_{t,ff}(s) = \frac{x}{r} = C\_{ff}(s)G(s) = 1 \quad \Longrightarrow \quad C\_{ff}(s) = G^{-1}(s)
|
||||
\end{equation}
|
||||
|
||||
<a id="org3b63c15"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/schmidt20_feedforward_control_diagram.svg" caption="Figure 4: Block diagram of a feedforward controller motion system with one input and output (SISO)." >}}
|
||||
|
||||
Feedforward control is a very useful and preferred first step in the control of a complex dynamic motion system as it provides the following advantages:
|
||||
|
||||
@ -480,7 +491,31 @@ The drawbacks and limitations of feedforward control are:
|
||||
|
||||
#### Overview Feedback Control {#overview-feedback-control}
|
||||
|
||||
{{< figure src="/ox-hugo/schmidt20_feedback_control_diagram.svg" >}}
|
||||
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 [5](#org2d7cf84) 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.
|
||||
|
||||
<div class="note">
|
||||
<div></div>
|
||||
|
||||
The transfer function of any input to any output in a closed-loop feedback controlled dynamic system is equal to the forward path from the input to the output divided by one plus the transfer function of the total feedback path.
|
||||
|
||||
</div>
|
||||
|
||||
<a id="org2d7cf84"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/schmidt20_feedback_control_diagram.svg" caption="Figure 5: 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.
|
||||
This enables a faster response of the system with adequate damping and also enable unstable plants to be stabilized.
|
||||
|
||||
The input filter does not contribute to this important aspect of feedback.
|
||||
It is mainly used to present unwanted signals from entering the system.
|
||||
This can be signals that drive the system into its "incapability" region where the system can no longer perform as required due to limitations in the hardware.
|
||||
|
||||
Feedback is an addition to feedforward control with the following benefits:
|
||||
|
||||
@ -524,12 +559,92 @@ 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 [6](#org5b8e277).
|
||||
|
||||
<a id="org5b8e277"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/schmidt20_bode_plot_scanning.svg" caption="Figure 6: 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:
|
||||
|
||||
\begin{equation}
|
||||
G(s) = \frac{C\_f \omega\_0^2}{s^2 + 2\xi\_f \omega\_0 s + \omega\_0^2}
|
||||
\end{equation}
|
||||
|
||||
When positioning at high scanning frequency, the resonance at the first mode-shape of this scanning unit causes oscillations, which adversely affect the tracking accuracy.
|
||||
In order to solve this problem, a feedforward controller is designed that compensate the dynamics of the scanner by first inverting the transfer function of the plan, without changing the static gain of the positioning system.
|
||||
This means that the transfer function of the feedforward controller is:
|
||||
|
||||
\begin{equation}
|
||||
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.
|
||||
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:
|
||||
|
||||
\begin{equation}
|
||||
C\_{ff}(s) = \frac{s^2 + 2 \xi\_f \omega\_0 s + \omega\_0^2}{s^2 + 2\cdot 1 \cdot \omega\_0 s + \omega\_0^2}
|
||||
\end{equation}
|
||||
|
||||
There the damping ratio of the resulting dynamics is chosen to be \\(\xi = 1\\).
|
||||
|
||||
This feedforward controller is basically a _notch filter_.
|
||||
In order to create an additional attenuation of higher frequency resonances due to flexible-body mode-shapes, another first-order pole is added at the first eigenfrequency:
|
||||
|
||||
\begin{equation}
|
||||
C\_{ff}(s) = \frac{s^2 + 2 \xi\_f \omega\_0 s + \omega\_0^2}{(s + \omega\_0)(s^2 + 2\omega\_0 s + \omega\_0^2)}
|
||||
\end{equation}
|
||||
|
||||
Then this controller is connected in series with the scanning unit, the anti-resonance of the controller and the resonance of the piezo-scanner cancel each other out:
|
||||
|
||||
\begin{equation}
|
||||
\begin{align}
|
||||
G\_{t,ff}(s) &= G(s)G\_{ff}(s) \\\\\\
|
||||
&= \frac{C\_f}{s^2 + 2 \xi\_f \omega\_0 s + \omega\_0^2} \frac{s^2 + 2 \xi\_f \omega\_0 s + \omega\_0^2}{(s + \omega\_0){s^2 + 2 \omega\_0 s + \omega\_0^2}} \\\\\\
|
||||
&= \frac{C\_f}{(s + \omega\_0){s^2 + 2 \omega\_0 s + \omega\_0^2}}
|
||||
\end{align}
|
||||
\end{equation}
|
||||
|
||||
The bode plot of the resulting dynamics is shown in Figure [7](#orga61b541).
|
||||
The controlled system has low-pass characteristics, rolling of at the scanner's natural frequency.
|
||||
|
||||
<a id="orga61b541"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/schmidt20_bode_plot_feedfoward_example.svg" caption="Figure 7: Bode plot of the feedforward-controlled scanning unit" >}}
|
||||
|
||||
|
||||
#### Input-Shaping {#input-shaping}
|
||||
|
||||
Another often applied control method is _input-shaping_.
|
||||
Instead of applying a filter in the frequency domain, with this method the reference signal is modified in the time-domain.
|
||||
As an example, the piezoelectric actuator driven scanning unit is used.
|
||||
When applying a step signal to the scanning unit, it would start of oscillate at its natural frequency.
|
||||
In a first approximation, the scanner can be assumed to behave like a linear system, which means that a reduction of the input step stimulus by a factor of two would result in a reduction of the amplitude of the response by the same factor two.
|
||||
|
||||
The idea is that instead of applying one step, two steps with half amplitude are applied with the second step delayed by half the period of the scanner's resonance frequency.
|
||||
The oscillation caused by each individual step are 180 degrees out of phase and cancel each other out.
|
||||
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 [8](#orgfe06e66).
|
||||
|
||||
<a id="orgfe06e66"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/schmidt20_input_shaping_example.svg" caption="Figure 8: 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.
|
||||
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.
|
||||
|
||||
For repetitive processed, the required feedforward signal can be derived from the previous cycles.
|
||||
This version of adaptive feedforward control is called _Iterative Learning Control_ (ILC).
|
||||
|
||||
|
||||
#### Trajectory Profile Generation {#trajectory-profile-generation}
|
||||
|
||||
@ -543,35 +658,92 @@ 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 [4](#org473e6fa) 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 [9](#org68ee0e9) 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="org473e6fa"></a>
|
||||
<a id="org68ee0e9"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/schmidt20_trajectory_profile.svg" caption="Figure 4: Figure caption" >}}
|
||||
{{< figure src="/ox-hugo/schmidt20_trajectory_profile.svg" caption="Figure 9: Figure caption" >}}
|
||||
|
||||
|
||||
### Feedback Control {#feedback-control}
|
||||
|
||||
Feedforward control can improve the performance of an open-loop stable system with known properties and circumstances.
|
||||
However, there is always some remaining errors than need to be corrected by feedback control.
|
||||
|
||||
Feedback control is more complex and critical to design than feedforward control due the inherent risk of instability.
|
||||
|
||||
> On might say that a high value of the unity-gain crossover frequency and corresponding high-frequency bandwidth limit is rather an unwanted side-effect of the required high loop-gain at lower frequencies, than a target for the design of a control system as such.
|
||||
|
||||
|
||||
#### Sensitivity to Input Signals {#sensitivity-to-input-signals}
|
||||
|
||||
In general, a feedback controlled motion system is to perform a certain predetermined motion task defined by the reference input \\(r\\), while reducing the effects of other inputs like external vibrations and noise from the electronics.
|
||||
All these input signals, whether desired of undesired, are treated by the feedback loop as disturbances and it is the sensitivity of the desired output signal to all input signals that determine the performance of the feedback controller.
|
||||
|
||||
##### Sensitivity Functions {#sensitivity-functions}
|
||||
<a id="org2c29057"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/schmidt20_feedback_full_simplified.svg" caption="Figure 10: 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." >}}
|
||||
|
||||
##### Real Feedback Error Sensitivity {#real-feedback-error-sensitivity}
|
||||
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 [10](#org2c29057).
|
||||
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.
|
||||
Six different transfer functions are obtained and summarized in Table [3](#table--tab:gang-of-six).
|
||||
|
||||
<a id="table--tab:gang-of-six"></a>
|
||||
<div class="table-caption">
|
||||
<span class="table-number"><a href="#table--tab:gang-of-six">Table 3</a></span>:
|
||||
Gang of six
|
||||
</div>
|
||||
|
||||
| \\(\frac{x}{r} = \frac{y}{r} = \frac{GCF}{1 + GC}\\) | \\(-\frac{x}{n} = -\frac{u}{d} = \frac{GC}{1 + GC}\\) | \\(\frac{x}{d} = \frac{y}{d} = \frac{G}{1 + GC}\\) |
|
||||
|------------------------------------------------------|-------------------------------------------------------|----------------------------------------------------|
|
||||
| \\(\frac{u}{r} = \frac{CF}{1 + GC}\\) | \\(\frac{u}{n} = \frac{C}{1 + GC}\\) | \\(\frac{y}{n} = \frac{1}{1 + GC}\\) |
|
||||
|
||||
In case no input filter is applied \\(F\\) is equal to one and the set of six equations is reduced to a set of four equations as shown in Table [4](#table--tab:gang-of-four).
|
||||
This short set of equations also corresponds to the situation without a reference signal.
|
||||
|
||||
The most important transfer function is named the _Sensitivity Function_ (no unit):
|
||||
|
||||
\begin{equation}
|
||||
S(s) = \frac{1}{1 + GC}
|
||||
\end{equation}
|
||||
|
||||
It represents the sensitivity of the output to a disturbance on the output.
|
||||
|
||||
Then, the _Process Sensitivity Function_ (in [m/N]):
|
||||
|
||||
\begin{equation}
|
||||
GS(s) = \frac{G}{1 + GC}
|
||||
\end{equation}
|
||||
|
||||
which represents the sensitivity of the output to disturbances inside and before the plant.
|
||||
|
||||
Finally, the _Complementary Sensitivity Function_ (no unit):
|
||||
|
||||
\begin{equation}
|
||||
T(s) = \frac{GC}{1 + GC}
|
||||
\end{equation}
|
||||
|
||||
represents the ability of the system to follow a given reference position signal.
|
||||
|
||||
<a id="table--tab:gang-of-four"></a>
|
||||
<div class="table-caption">
|
||||
<span class="table-number"><a href="#table--tab:gang-of-four">Table 4</a></span>:
|
||||
Gang of four
|
||||
</div>
|
||||
|
||||
| \\(\frac{x}{r} =\frac{y}{r} = -\frac{x}{n} = -\frac{u}{d} = \frac{GC}{1 + GC}\\) | \\(\frac{x}{d} = \frac{y}{d} = \frac{G}{1 + GC}\\) |
|
||||
|-----------------------------------------------------------------------------------|----------------------------------------------------|
|
||||
| \\(\frac{u}{r} = \frac{u}{n} = \frac{C}{1 + GC}\\) | \\(\frac{y}{n} = \frac{1}{1 + GC}\\) |
|
||||
|
||||
|
||||
#### Stability and Robustness in Feedback Control {#stability-and-robustness-in-feedback-control}
|
||||
|
||||
|
||||
##### Stability margins {#stability-margins}
|
||||
|
||||
|
||||
### PID Feedback Control {#pid-feedback-control}
|
||||
|
||||
|
||||
@ -673,9 +845,9 @@ A second order trajectory would show a square acceleration profile with infinite
|
||||
|
||||
#### Continuous Time versus Discrete Time {#continuous-time-versus-discrete-time}
|
||||
|
||||
<a id="orgfdb177f"></a>
|
||||
<a id="orgffe316d"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/schmidt20_digital_implementation.svg" caption="Figure 5: 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="Figure 11: Overview of a digital implementation of a feedback controller, emphasising the analog-to-digital and digital-to-analog converters with their required analogue filters" >}}
|
||||
|
||||
|
||||
#### Sampling of Continuous Signals {#sampling-of-continuous-signals}
|
||||
@ -1675,4 +1847,4 @@ Motion control is essential for Precision Mechatronic Systems and consists of tw
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<a id="org9aaa5b5"></a>Schmidt, R Munnig, Georg Schitter, and Adrian Rankers. 2020. _The Design of High Performance Mechatronics - Third Revised Edition_. Ios Press.
|
||||
<a id="orgb603526"></a>Schmidt, R Munnig, Georg Schitter, and Adrian Rankers. 2020. _The Design of High Performance Mechatronics - Third Revised Edition_. Ios Press.
|
||||
|
5613
static/ox-hugo/schmidt20_bode_plot_feedfoward_example.svg
Normal file
5613
static/ox-hugo/schmidt20_bode_plot_feedfoward_example.svg
Normal file
File diff suppressed because it is too large
Load Diff
After Width: | Height: | Size: 499 KiB |
5679
static/ox-hugo/schmidt20_bode_plot_scanning.svg
Normal file
5679
static/ox-hugo/schmidt20_bode_plot_scanning.svg
Normal file
File diff suppressed because it is too large
Load Diff
After Width: | Height: | Size: 526 KiB |
5851
static/ox-hugo/schmidt20_feedback_full_simplified.svg
Normal file
5851
static/ox-hugo/schmidt20_feedback_full_simplified.svg
Normal file
File diff suppressed because it is too large
Load Diff
After Width: | Height: | Size: 431 KiB |
6493
static/ox-hugo/schmidt20_input_shaping_example.svg
Normal file
6493
static/ox-hugo/schmidt20_input_shaping_example.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 601 KiB |
Loading…
Reference in New Issue
Block a user