Update Content - 2024-12-17
This commit is contained in:
@@ -14,7 +14,7 @@ Tags
|
||||
### Problem Definition {#problem-definition}
|
||||
|
||||
The goal of a system identification is to extract a model (usually a LTI transfer function) from experimental data.
|
||||
The system is represented in Figure <fig:siso_identification_schematic_simplier> with one input \\(u\\) and one output \\(y\_m\\) affected by some disturbances and noise \\(d\\).
|
||||
The system is represented in [Figure 1](#figure--fig:siso-identification-schematic-simplier) with one input \\(u\\) and one output \\(y\_m\\) affected by some disturbances and noise \\(d\\).
|
||||
|
||||
<a id="figure--fig:siso-identification-schematic-simplier"></a>
|
||||
|
||||
@@ -48,7 +48,7 @@ The sampling time of the recorded digital signal is 1ms.
|
||||
|
||||
### Open-loop identification {#open-loop-identification}
|
||||
|
||||
In open-loop identification (Figure <fig:siso_identification_schematic_simplier_open_loop>), a test signal \\(u\\) is used to _excite_ the system in the frequency range of interest.
|
||||
In open-loop identification ([Figure 2](#figure--fig:siso-identification-schematic-simplier-open-loop)), a test signal \\(u\\) is used to _excite_ the system in the frequency range of interest.
|
||||
The signal \\(u\\) can typically be a swept sine, noise or multi-sine.
|
||||
|
||||
<a id="figure--fig:siso-identification-schematic-simplier-open-loop"></a>
|
||||
@@ -70,7 +70,7 @@ Noverlap = floor(Nfft/2); % Overlap of 50%
|
||||
[Gm, f] = tfestimate(data.du, data.y, win, Noverlap, Nfft, 1/Ts);
|
||||
```
|
||||
|
||||
Then, the bode plot of the obtained transfer function is compared against the plant model including a 1.5 sample time delay (Figure <fig:system_identification_ol_comp_plant>).
|
||||
Then, the bode plot of the obtained transfer function is compared against the plant model including a 1.5 sample time delay ([Figure 3](#figure--fig:system-identification-ol-comp-plant)).
|
||||
|
||||
<a id="figure--fig:system-identification-ol-comp-plant"></a>
|
||||
|
||||
@@ -85,7 +85,7 @@ In order to assess the quality of the obtained FRF, the _coherence_ can be compu
|
||||
[coh, f] = mscohere(data.du, data.y, win, Noverlap, Nfft, 1/Ts);
|
||||
```
|
||||
|
||||
The result for the example is shown in Figure <fig:system_identification_ol_coh>.
|
||||
The result for the example is shown in [Figure 4](#figure--fig:system-identification-ol-coh).
|
||||
At high frequency, the measurement noise dominates and the coherence is poor.
|
||||
|
||||
<a id="figure--fig:system-identification-ol-coh"></a>
|
||||
@@ -96,7 +96,7 @@ At high frequency, the measurement noise dominates and the coherence is poor.
|
||||
### Closed-Loop identification {#closed-loop-identification}
|
||||
|
||||
If the open-loop system is unstable, a first simple controller needs to be designed to stabilizes the system.
|
||||
Then, the plant can be identified from closed-loop system identification (Figure <fig:siso_identification_schematic_simplier_closed_loop>).
|
||||
Then, the plant can be identified from closed-loop system identification ([Figure 5](#figure--fig:siso-identification-schematic-simplier-closed-loop)).
|
||||
|
||||
<a id="figure--fig:siso-identification-schematic-simplier-closed-loop"></a>
|
||||
|
||||
@@ -131,7 +131,7 @@ T = 1 - S;
|
||||
|
||||
### Multi-Input Multi-Output Plant {#multi-input-multi-output-plant}
|
||||
|
||||
This can be generalized to a MIMO plant (Figure <fig:siso_identification_schematic_simplier_closed_loop>).
|
||||
This can be generalized to a MIMO plant ([Figure 5](#figure--fig:siso-identification-schematic-simplier-closed-loop)).
|
||||
|
||||
<a id="figure--fig:siso-identification-schematic-simplier-closed-loop"></a>
|
||||
|
||||
@@ -174,7 +174,7 @@ There are several choices for excitation signals:
|
||||
- Random noise, Periodic signals (PRBS)
|
||||
- Multi-Sine
|
||||
|
||||
A good review is given in <&pintelon12_system_ident> (chapter 5).
|
||||
A good review is given in (<a href="#citeproc_bib_item_1">Pintelon and Schoukens 2012</a>) (chapter 5).
|
||||
|
||||
|
||||
### Random noise with specific ASD {#random-noise-with-specific-asd}
|
||||
@@ -300,7 +300,7 @@ u = generate_multisine(Fs, Ns, ...
|
||||
'type', 'schroeder');
|
||||
```
|
||||
|
||||
The ASD of the generated signal is exactly as expected (Figure <fig:system_identification_multi_sine_asd>)
|
||||
The ASD of the generated signal is exactly as expected ([Figure 7](#figure--fig:system-identification-multi-sine-asd))
|
||||
|
||||
```matlab
|
||||
[pxx, f] = pwelch(u, ones(Ns,1), [], Ns, Fs);
|
||||
@@ -310,7 +310,7 @@ The ASD of the generated signal is exactly as expected (Figure <fig:system_ident
|
||||
|
||||
{{< figure src="/ox-hugo/system_identification_multi_sine_asd.png" caption="<span class=\"figure-number\">Figure 7: </span>Amplitude Spectral Density of the multi-sine signal" >}}
|
||||
|
||||
In the time domain, it is shown in Figure <fig:system_identification_multi_sine_time>.
|
||||
In the time domain, it is shown in [Figure 8](#figure--fig:system-identification-multi-sine-time).
|
||||
|
||||
<a id="figure--fig:system-identification-multi-sine-time"></a>
|
||||
|
||||
@@ -324,7 +324,7 @@ Only the first period (here of 1s) is discarded to remove transient effects.
|
||||
[Gm, f] = tfestimate(data.du(Ns:end), data.y(Ns:end), ones(Ns,1), [], Ns, Fs);
|
||||
```
|
||||
|
||||
The obtained FRF is shown in Figure <fig:system_identification_multi_sine_frf>.
|
||||
The obtained FRF is shown in [Figure 9](#figure--fig:system-identification-multi-sine-frf).
|
||||
The quality of the obtained FRF is only good in the defined range.
|
||||
|
||||
<a id="figure--fig:system-identification-multi-sine-frf"></a>
|
||||
@@ -334,7 +334,7 @@ The quality of the obtained FRF is only good in the defined range.
|
||||
|
||||
### `generatemultisine` - Matlab Function {#generatemultisine-matlab-function}
|
||||
|
||||
The synthesis of multi-sine with minimal "crest factor" is taken from <&schroeder70_synth_low_peak_factor_signal>.
|
||||
The synthesis of multi-sine with minimal "crest factor" is taken from (<a href="#citeproc_bib_item_3">Schroeder 1970</a>).
|
||||
|
||||
The Matlab code is adapted from [here](https://bholmesqub.github.io/thesis/chapters/identification-design/multi-sine/).
|
||||
|
||||
@@ -424,10 +424,14 @@ end
|
||||
|
||||
## Reference Books {#reference-books}
|
||||
|
||||
- <pintelon12_system_ident>
|
||||
- <schoukens12_master>
|
||||
- (<a href="#citeproc_bib_item_1">Pintelon and Schoukens 2012</a>)
|
||||
- (<a href="#citeproc_bib_item_2">Schoukens, Pintelon, and Rolain 2012</a>)
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<./biblio/references.bib>
|
||||
<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>Pintelon, Rik, and Johan Schoukens. 2012. <i>System Identification : a Frequency Domain Approach</i>. Hoboken, N.J. Piscataway, NJ: Wiley IEEE Press. doi:<a href="https://doi.org/10.1002/9781118287422">10.1002/9781118287422</a>.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_2"></a>Schoukens, Johan, Rik Pintelon, and Yves Rolain. 2012. <i>Mastering System Identification in 100 Exercises</i>. John Wiley & Sons.</div>
|
||||
<div class="csl-entry"><a id="citeproc_bib_item_3"></a>Schroeder, Manfred. 1970. “Synthesis of Low-Peak-Factor Signals and Binary Sequences with Low Autocorrelation (Corresp.).” <i>IEEE Transactions on Information Theory</i> 16 (1). IEEE: 85–89.</div>
|
||||
</div>
|
||||
|
Reference in New Issue
Block a user