diff --git a/figs/frequency_response_matrix.png b/figs/frequency_response_matrix.png index e343f57..c3ea85d 100644 Binary files a/figs/frequency_response_matrix.png and b/figs/frequency_response_matrix.png differ diff --git a/figs/identification_coherence.png b/figs/identification_coherence.png index bb614ba..642ca94 100644 Binary files a/figs/identification_coherence.png and b/figs/identification_coherence.png differ diff --git a/figs/identification_matrix_fit.png b/figs/identification_matrix_fit.png index 20c0f87..3a82e18 100644 Binary files a/figs/identification_matrix_fit.png and b/figs/identification_matrix_fit.png differ diff --git a/index.html b/index.html index 5cf4bd6..0965d0f 100644 --- a/index.html +++ b/index.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + Cercalo Test Bench @@ -276,27 +276,27 @@ for the JavaScript code in this tag.

Table of Contents

-
-

1 Identification

+
+

1 Identification

- +

@@ -306,8 +306,8 @@ All the files (data and Matlab scripts) are accessible -

1.1 Excitation Data

+
+

1.1 Excitation Data

fs = 1e4;
@@ -344,8 +344,8 @@ Discrete-time zero/pole/gain model.
 
-
-

1.2 Input / Output data

+
+

1.2 Input / Output data

The identification data is loaded @@ -388,7 +388,7 @@ uy.yy = uy.yy-mean +

identification_ux.png

Figure 1: Identification signals when exciting the \(x\) axis (png, pdf)

@@ -396,7 +396,7 @@ uy.yy = uy.yy-mean +

identification_uy.png

Figure 2: Identification signals when exciting the \(y\) axis (png, pdf)

@@ -404,8 +404,8 @@ uy.yy = uy.yy-mean -

1.3 Estimation of the Frequency Response Function Matrix

+
+

1.3 Estimation of the Frequency Response Function Matrix

We compute an estimate of the transfer functions. @@ -419,7 +419,7 @@ We compute an estimate of the transfer functions.

-
+

frequency_response_matrix.png

Figure 3: Frequency Response Matrix (png, pdf)

@@ -427,8 +427,8 @@ We compute an estimate of the transfer functions.
-
-

1.4 Coherence

+
+

1.4 Coherence

[coh_ux_yx, f] = mscohere(ux.ux, ux.yx, hanning(ceil(1*fs)), [], [], fs);
@@ -439,7 +439,7 @@ We compute an estimate of the transfer functions.
 
-
+

identification_coherence.png

Figure 4: Coherence (png, pdf)

@@ -448,8 +448,8 @@ We compute an estimate of the transfer functions.
-
-

1.5 Extraction of a transfer function matrix

+
+

1.5 Extraction of a transfer function matrix

First we define the initial guess for the resonance frequencies and the weights associated. @@ -503,7 +503,7 @@ Ignore data above some frequency.

-
+

weights.png

Figure 5: Weights amplitude (png, pdf)

@@ -555,7 +555,7 @@ An we run the vectfit3 algorithm.
-
+

identification_matrix_fit.png

Figure 6: Transfer Function Extraction of the FRF matrix (png, pdf)

@@ -582,16 +582,17 @@ G = [G_ux_yx, G_uy_yx;
-
-

2 Plant Analysis

+ +
+

2 Plant Analysis

-
-

3 Control

+
+

3 Control

Author: Dehaeze Thomas

-

Created: 2019-09-10 mar. 18:18

+

Created: 2019-09-11 mer. 09:10

Validate

diff --git a/index.org b/index.org index ece7dcd..e0322f3 100644 --- a/index.org +++ b/index.org @@ -203,14 +203,14 @@ We compute an estimate of the transfer functions. ax12 = subplot(2, 2, 2); hold on; - plot(f, abs(tf_ux_yy)) + plot(f, abs(tf_uy_yx)) title('Frequency Response Function $\frac{y_x}{u_y}$') set(gca, 'Xscale', 'log'); set(gca, 'Yscale', 'log'); hold off; ax21 = subplot(2, 2, 3); hold on; - plot(f, abs(tf_uy_yx)) + plot(f, abs(tf_ux_yy)) title('Frequency Response Function $\frac{y_y}{u_x}$') set(gca, 'Xscale', 'log'); set(gca, 'Yscale', 'log'); ylabel('Amplitude') @@ -260,14 +260,14 @@ We compute an estimate of the transfer functions. ax12 = subplot(2, 2, 2); hold on; - plot(f, coh_ux_yy) + plot(f, coh_uy_yx) set(gca, 'Xscale', 'log'); title('Coherence $\frac{y_x}{u_y}$') hold off; ax21 = subplot(2, 2, 3); hold on; - plot(f, coh_uy_yx) + plot(f, coh_ux_yy) set(gca, 'Xscale', 'log'); title('Coherence $\frac{y_y}{u_x}$') ylabel('Coherence') @@ -405,16 +405,16 @@ An we run the =vectfit3= algorithm. ax12 = subplot(2, 2, 2); hold on; - plot(f, abs(tf_ux_yy)) - plot(f, abs(fit_ux_yy)) + plot(f, abs(tf_uy_yx)) + plot(f, abs(fit_uy_yx)) title('Frequency Response Function $\frac{y_x}{u_y}$') set(gca, 'Xscale', 'log'); set(gca, 'Yscale', 'log'); hold off; ax21 = subplot(2, 2, 3); hold on; - plot(f, abs(tf_uy_yx)) - plot(f, abs(fit_uy_yx)) + plot(f, abs(tf_ux_yy)) + plot(f, abs(fit_ux_yy)) title('Frequency Response Function $\frac{y_y}{u_x}$') set(gca, 'Xscale', 'log'); set(gca, 'Yscale', 'log'); ylabel('Amplitude') @@ -459,5 +459,6 @@ And finally, we create the identified state space model: #+begin_src matlab save('mat/plant.mat', 'G'); #+end_src + * Plant Analysis * Control diff --git a/mat/plant.mat b/mat/plant.mat index 6c39a25..837729a 100644 Binary files a/mat/plant.mat and b/mat/plant.mat differ diff --git a/matlab/plant_identification.m b/matlab/plant_identification.m index 743cc52..5bfb182 100644 --- a/matlab/plant_identification.m +++ b/matlab/plant_identification.m @@ -115,14 +115,14 @@ hold off; ax12 = subplot(2, 2, 2); hold on; -plot(f, abs(tf_ux_yy)) +plot(f, abs(tf_uy_yx)) title('Frequency Response Function $\frac{y_x}{u_y}$') set(gca, 'Xscale', 'log'); set(gca, 'Yscale', 'log'); hold off; ax21 = subplot(2, 2, 3); hold on; -plot(f, abs(tf_uy_yx)) +plot(f, abs(tf_ux_yy)) title('Frequency Response Function $\frac{y_y}{u_x}$') set(gca, 'Xscale', 'log'); set(gca, 'Yscale', 'log'); ylabel('Amplitude') @@ -160,14 +160,14 @@ hold off; ax12 = subplot(2, 2, 2); hold on; -plot(f, coh_ux_yy) +plot(f, coh_uy_yx) set(gca, 'Xscale', 'log'); title('Coherence $\frac{y_x}{u_y}$') hold off; ax21 = subplot(2, 2, 3); hold on; -plot(f, coh_uy_yx) +plot(f, coh_ux_yy) set(gca, 'Xscale', 'log'); title('Coherence $\frac{y_y}{u_x}$') ylabel('Coherence') @@ -292,16 +292,16 @@ hold off; ax12 = subplot(2, 2, 2); hold on; -plot(f, abs(tf_ux_yy)) -plot(f, abs(fit_ux_yy)) +plot(f, abs(tf_uy_yx)) +plot(f, abs(fit_uy_yx)) title('Frequency Response Function $\frac{y_x}{u_y}$') set(gca, 'Xscale', 'log'); set(gca, 'Yscale', 'log'); hold off; ax21 = subplot(2, 2, 3); hold on; -plot(f, abs(tf_uy_yx)) -plot(f, abs(fit_uy_yx)) +plot(f, abs(tf_ux_yy)) +plot(f, abs(fit_ux_yy)) title('Frequency Response Function $\frac{y_y}{u_x}$') set(gca, 'Xscale', 'log'); set(gca, 'Yscale', 'log'); ylabel('Amplitude')