Rework all figures

This commit is contained in:
Thomas Dehaeze 2025-02-17 22:57:56 +01:00
parent b22253dcc8
commit 8fd71134d4
38 changed files with 4436 additions and 4525 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 120 KiB

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 145 KiB

After

Width:  |  Height:  |  Size: 149 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 81 KiB

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 117 KiB

After

Width:  |  Height:  |  Size: 114 KiB

View File

@ -3,7 +3,7 @@
1 0 obj 1 0 obj
<< <<
/Producer (Apache FOP Version 2.4.0-SNAPSHOT: PDFDocumentGraphics2D) /Producer (Apache FOP Version 2.4.0-SNAPSHOT: PDFDocumentGraphics2D)
/CreationDate (D:20250217165015+01'00') /CreationDate (D:20250217224501+01'00')
>> >>
endobj endobj
2 0 obj 2 0 obj
@ -2143,7 +2143,7 @@ trailer
<< <<
/Root 182 0 R /Root 182 0 R
/Info 1 0 R /Info 1 0 R
/ID [<8950F1D66D6C5419D1DC2082542048A8> <8950F1D66D6C5419D1DC2082542048A8>] /ID [<FE95C1327F9605F80B90F0A620E44675> <FE95C1327F9605F80B90F0A620E44675>]
/Size 183 /Size 183
>> >>
startxref startxref

View File

@ -3,7 +3,7 @@
1 0 obj 1 0 obj
<< <<
/Producer (Apache FOP Version 2.4.0-SNAPSHOT: PDFDocumentGraphics2D) /Producer (Apache FOP Version 2.4.0-SNAPSHOT: PDFDocumentGraphics2D)
/CreationDate (D:20250217164952+01'00') /CreationDate (D:20250217224351+01'00')
>> >>
endobj endobj
2 0 obj 2 0 obj
@ -2143,7 +2143,7 @@ trailer
<< <<
/Root 192 0 R /Root 192 0 R
/Info 1 0 R /Info 1 0 R
/ID [<0DBF4BE48E6A60B24F0F8845B9514DDD> <0DBF4BE48E6A60B24F0F8845B9514DDD>] /ID [<DD4AAE46E108294B4ECC637DAD1A7440> <DD4AAE46E108294B4ECC637DAD1A7440>]
/Size 193 /Size 193
>> >>
startxref startxref

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 111 KiB

After

Width:  |  Height:  |  Size: 116 KiB

View File

@ -3,7 +3,7 @@
1 0 obj 1 0 obj
<< <<
/Producer (Apache FOP Version 2.4.0-SNAPSHOT: PDFDocumentGraphics2D) /Producer (Apache FOP Version 2.4.0-SNAPSHOT: PDFDocumentGraphics2D)
/CreationDate (D:20250217165504+01'00') /CreationDate (D:20250217224119+01'00')
>> >>
endobj endobj
2 0 obj 2 0 obj
@ -2306,7 +2306,7 @@ trailer
<< <<
/Root 178 0 R /Root 178 0 R
/Info 1 0 R /Info 1 0 R
/ID [<3630E01169C70E25D654EEE5283C8ABD> <3630E01169C70E25D654EEE5283C8ABD>] /ID [<6133A65D51003F02A7EFEFAC76B544CC> <6133A65D51003F02A7EFEFAC76B544CC>]
/Size 179 /Size 179
>> >>
startxref startxref

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Binary file not shown.

View File

@ -3,7 +3,7 @@
1 0 obj 1 0 obj
<< <<
/Producer (Apache FOP Version 2.4.0-SNAPSHOT: PDFDocumentGraphics2D) /Producer (Apache FOP Version 2.4.0-SNAPSHOT: PDFDocumentGraphics2D)
/CreationDate (D:20250217180103+01'00') /CreationDate (D:20250217224912+01'00')
>> >>
endobj endobj
2 0 obj 2 0 obj
@ -2179,7 +2179,7 @@ trailer
<< <<
/Root 215 0 R /Root 215 0 R
/Info 1 0 R /Info 1 0 R
/ID [<A3BD0F36D1EF53B5EB61AEF8934A94B3> <A3BD0F36D1EF53B5EB61AEF8934A94B3>] /ID [<F83F7D266D06EAE0649EEB142832B885> <F83F7D266D06EAE0649EEB142832B885>]
/Size 216 /Size 216
>> >>
startxref startxref

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 116 KiB

After

Width:  |  Height:  |  Size: 118 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 154 KiB

After

Width:  |  Height:  |  Size: 151 KiB

View File

@ -248,6 +248,22 @@ One big advantage of doing the control in the cartesian plane, is that we don't
Maybe this should be done *here*. Maybe this should be done *here*.
Here it can be reminded when doing the control in the cartesian frame. Here it can be reminded when doing the control in the cartesian frame.
** TODO [#B] Determine which .mat files are used and which are not
- [ ] matlab/mat/conf_log.mat
- [ ] matlab/mat/conf_simscape.mat
- [ ] matlab/mat/conf_simulink.mat
- [ ] matlab/mat/nano_hexapod.mat
- [ ] matlab/mat/nass_disturbances.mat
- [ ] matlab/mat/nass_model_conf_log.mat
- [ ] matlab/mat/nass_model_conf_simscape.mat
- [ ] matlab/mat/nass_model_controller.mat
- [ ] matlab/mat/nass_model_disturbances.mat
- [ ] matlab/mat/nass_model_references.mat
- [ ] matlab/mat/nass_model_stages.mat
- [ ] matlab/mat/nass_references.mat
- [ ] matlab/mat/nass_stages.mat
** TODO [#B] Check if things are compatible to results of uniaxial model ** TODO [#B] Check if things are compatible to results of uniaxial model
** DONE [#C] Check if it would be interesting to show soft/stiff nano-hexapod plants ** DONE [#C] Check if it would be interesting to show soft/stiff nano-hexapod plants
@ -1013,36 +1029,36 @@ ax1 = nexttile([2,1]);
hold on; hold on;
for i = 1:5 for i = 1:5
for j = i+1:6 for j = i+1:6
plot(freqs, abs(squeeze(freqresp(G_iff_m1(i,j), freqs, 'Hz'))), 'color', [colors(1,:), 0.1], ... plot(freqs, abs(squeeze(freqresp(G_iff_m25(i,j), freqs, 'Hz'))), 'color', [colors(1,:), 0.1], ...
'HandleVisibility', 'off'); 'HandleVisibility', 'off');
plot(freqs, abs(squeeze(freqresp(G_iff_m1_Rz(i,j), freqs, 'Hz'))), 'color', [colors(2,:), 0.1], ... plot(freqs, abs(squeeze(freqresp(G_iff_m25_Rz(i,j), freqs, 'Hz'))), 'color', [colors(2,:), 0.1], ...
'HandleVisibility', 'off'); 'HandleVisibility', 'off');
end end
end end
plot(freqs, abs(squeeze(freqresp(G_iff_m1(1,1), freqs, 'Hz'))), 'color', colors(1,:), ... plot(freqs, abs(squeeze(freqresp(G_iff_m25(1,1), freqs, 'Hz'))), 'color', colors(1,:), ...
'DisplayName', '$f_{ni}/f_i$ - $\Omega_z = 0$ deg/s') 'DisplayName', '$f_{ni}/f_i$ - $\Omega_z = 0$ deg/s')
plot(freqs, abs(squeeze(freqresp(G_iff_m1_Rz(1,1), freqs, 'Hz'))), 'color', colors(2,:), ... plot(freqs, abs(squeeze(freqresp(G_iff_m25_Rz(1,1), freqs, 'Hz'))), 'color', colors(2,:), ...
'DisplayName', '$f_{ni}/f_i$ - $\Omega_z = 360$ deg/s') 'DisplayName', '$f_{ni}/f_i$ - $\Omega_z = 360$ deg/s')
for i = 2:6 for i = 2:6
plot(freqs, abs(squeeze(freqresp(G_iff_m1(i,i), freqs, 'Hz'))), 'color', colors(1,:), ... plot(freqs, abs(squeeze(freqresp(G_iff_m25(i,i), freqs, 'Hz'))), 'color', colors(1,:), ...
'HandleVisibility', 'off'); 'HandleVisibility', 'off');
plot(freqs, abs(squeeze(freqresp(G_iff_m1_Rz(i,i), freqs, 'Hz'))), 'color', colors(2,:), ... plot(freqs, abs(squeeze(freqresp(G_iff_m25_Rz(i,i), freqs, 'Hz'))), 'color', colors(2,:), ...
'HandleVisibility', 'off'); 'HandleVisibility', 'off');
end end
% plot(freqs, abs(squeeze(freqresp(G_iff_m1_Rz(1,2), freqs, 'Hz'))), 'color', [0, 0, 0, 0.2], ... % plot(freqs, abs(squeeze(freqresp(G_iff_m25_Rz(1,2), freqs, 'Hz'))), 'color', [0, 0, 0, 0.2], ...
% 'DisplayName', '$f_{ni}/f_j$') % 'DisplayName', '$f_{ni}/f_j$')
hold off; hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
ylabel('Amplitude [N/N]'); set(gca, 'XTickLabel',[]); ylabel('Amplitude [N/N]'); set(gca, 'XTickLabel',[]);
ylim([1e-6, 1e2]); ylim([1e-4, 1e2]);
leg = legend('location', 'northwest', 'FontSize', 8, 'NumColumns', 1); leg = legend('location', 'southeast', 'FontSize', 8, 'NumColumns', 1);
leg.ItemTokenSize(1) = 15; leg.ItemTokenSize(1) = 15;
ax2 = nexttile; ax2 = nexttile;
hold on; hold on;
for i = 1:6 for i = 1:6
plot(freqs, 180/pi*angle(squeeze(freqresp(G_iff_m1(i,i), freqs, 'Hz'))), 'color', colors(1,:)); plot(freqs, 180/pi*angle(squeeze(freqresp(G_iff_m25(i,i), freqs, 'Hz'))), 'color', colors(1,:));
plot(freqs, 180/pi*angle(squeeze(freqresp(G_iff_m1_Rz(i,i), freqs, 'Hz'))), 'color', colors(2,:)); plot(freqs, 180/pi*angle(squeeze(freqresp(G_iff_m25_Rz(i,i), freqs, 'Hz'))), 'color', colors(2,:));
end end
hold off; hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin'); set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
@ -1158,8 +1174,8 @@ The overall gain is then increased to have large loop gain around resonances to
#+begin_src matlab #+begin_src matlab
%% Verify that parallel stiffness permits to have a stable plant %% Verify that parallel stiffness permits to have a stable plant
Kiff_pure_int = -200/s*eye(6); Kiff_pure_int = -200/s*eye(6);
isstable(feedback(G_iff_m1_Rz, Kiff_pure_int, 1)) isstable(feedback(G_iff_m25_Rz, Kiff_pure_int, 1))
isstable(feedback(G_iff_m1_Rz_no_kp, Kiff_pure_int, 1)) isstable(feedback(G_iff_m25_Rz_no_kp, Kiff_pure_int, 1))
#+end_src #+end_src
#+begin_src matlab #+begin_src matlab
@ -1263,19 +1279,19 @@ tiledlayout(1, 1, 'TileSpacing', 'compact', 'Padding', 'None');
nexttile(); nexttile();
hold on; hold on;
plot(real(pole(G_iff_m1_Rz)), imag(pole(G_iff_m1_Rz)), 'x', 'color', colors(1,:), ... plot(real(pole(G_iff_m1)), imag(pole(G_iff_m1)), 'x', 'color', colors(1,:), ...
'DisplayName', '$g = 0$'); 'DisplayName', '$g = 0$');
plot(real(tzero(G_iff_m1_Rz)), imag(tzero(G_iff_m1_Rz)), 'o', 'color', colors(1,:), ... plot(real(tzero(G_iff_m1)), imag(tzero(G_iff_m1)), 'o', 'color', colors(1,:), ...
'HandleVisibility', 'off'); 'HandleVisibility', 'off');
for g = gains for g = gains
clpoles = pole(feedback(G_iff_m1_Rz, g*Kiff, +1)); clpoles = pole(feedback(G_iff_m1, g*Kiff, +1));
plot(real(clpoles), imag(clpoles), '.', 'color', colors(1,:), ... plot(real(clpoles), imag(clpoles), '.', 'color', colors(1,:), ...
'HandleVisibility', 'off'); 'HandleVisibility', 'off');
end end
% Optimal gain % Optimal gain
clpoles = pole(feedback(G_iff_m1_Rz, Kiff, +1)); clpoles = pole(feedback(G_iff_m1, Kiff, +1));
plot(real(clpoles), imag(clpoles), 'kx', ... plot(real(clpoles), imag(clpoles), 'kx', ...
'DisplayName', '$g_{opt}$'); 'DisplayName', '$g_{opt}$');
@ -1513,26 +1529,26 @@ tiledlayout(3, 1, 'TileSpacing', 'Compact', 'Padding', 'None');
ax1 = nexttile([2,1]); ax1 = nexttile([2,1]);
hold on; hold on;
plot(f, abs(squeeze(freqresp(G_m1(1,1), f, 'Hz'))), 'color', colors(1,:), ... plot(freqs, abs(squeeze(freqresp(G_m1(1,1), freqs, 'Hz'))), 'color', colors(1,:), ...
'DisplayName', '$\epsilon_{\mathcal{L}i}/f_i$, $\Omega = 0$') 'DisplayName', '$\epsilon_{\mathcal{L}i}/f_i$, $\Omega = 0$')
plot(f, abs(squeeze(freqresp(G_m1_Rz(1,1), f, 'Hz'))), 'color', colors(2,:), ... plot(freqs, abs(squeeze(freqresp(G_m1_Rz(1,1), freqs, 'Hz'))), 'color', colors(2,:), ...
'DisplayName', '$\epsilon_{\mathcal{L}i}/f_i$, $\Omega = 360$ deg/s') 'DisplayName', '$\epsilon_{\mathcal{L}i}/f_i$, $\Omega = 360$ deg/s')
plot(f, abs(squeeze(freqresp(G_m1(1,2), f, 'Hz'))), 'color', [colors(1,:), 0.2], ... plot(freqs, abs(squeeze(freqresp(G_m1(1,2), freqs, 'Hz'))), 'color', [colors(1,:), 0.2], ...
'DisplayName', '$\epsilon_{\mathcal{L}i}/f_j$') 'DisplayName', '$\epsilon_{\mathcal{L}i}/f_j$')
plot(f, abs(squeeze(freqresp(G_m1_Rz(1,2), f, 'Hz'))), 'color', [colors(2,:), 0.2], ... plot(freqs, abs(squeeze(freqresp(G_m1_Rz(1,2), freqs, 'Hz'))), 'color', [colors(2,:), 0.2], ...
'DisplayName', '$\epsilon_{\mathcal{L}i}/f_j$') 'DisplayName', '$\epsilon_{\mathcal{L}i}/f_j$')
for i = 1:5 for i = 1:5
for j = i+1:6 for j = i+1:6
plot(f, abs(squeeze(freqresp(G_m1(i,j), f, 'Hz'))), 'color', [colors(1,:), 0.2], ... plot(freqs, abs(squeeze(freqresp(G_m1(i,j), freqs, 'Hz'))), 'color', [colors(1,:), 0.2], ...
'HandleVisibility', 'off'); 'HandleVisibility', 'off');
plot(f, abs(squeeze(freqresp(G_m1_Rz(i,j), f, 'Hz'))), 'color', [colors(2,:), 0.2], ... plot(freqs, abs(squeeze(freqresp(G_m1_Rz(i,j), freqs, 'Hz'))), 'color', [colors(2,:), 0.2], ...
'HandleVisibility', 'off'); 'HandleVisibility', 'off');
end end
end end
for i = 2:6 for i = 2:6
plot(f, abs(squeeze(freqresp(G_m1(i,i), f, 'Hz'))), 'color', colors(1,:), ... plot(freqs, abs(squeeze(freqresp(G_m1(i,i), freqs, 'Hz'))), 'color', colors(1,:), ...
'HandleVisibility', 'off'); 'HandleVisibility', 'off');
plot(f, abs(squeeze(freqresp(G_m1_Rz(i,i), f, 'Hz'))), 'color', colors(2,:), ... plot(freqs, abs(squeeze(freqresp(G_m1_Rz(i,i), freqs, 'Hz'))), 'color', colors(2,:), ...
'HandleVisibility', 'off'); 'HandleVisibility', 'off');
end end
hold off; hold off;
@ -1545,8 +1561,8 @@ leg.ItemTokenSize(1) = 15;
ax2 = nexttile; ax2 = nexttile;
hold on; hold on;
for i = 1:6 for i = 1:6
plot(f, 180/pi*unwrap(angle(squeeze(freqresp(G_m1(i,i), f, 'Hz')))), 'color', colors(1,:)); plot(freqs, 180/pi*unwrap(angle(squeeze(freqresp(G_m1(i,i), freqs, 'Hz')))), 'color', colors(1,:));
plot(f, 180/pi*unwrap(angle(squeeze(freqresp(G_m1_Rz(i,i), f, 'Hz')))), 'color', colors(2,:)); plot(freqs, 180/pi*unwrap(angle(squeeze(freqresp(G_m1_Rz(i,i), freqs, 'Hz')))), 'color', colors(2,:));
end end
hold off; hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin'); set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
@ -1555,7 +1571,7 @@ ylim([-200, 20]);
yticks([-180:45:180]); yticks([-180:45:180]);
linkaxes([ax1,ax2],'x'); linkaxes([ax1,ax2],'x');
xlim([f(1), f(end)]); xlim([freqs(1), freqs(end)]);
#+end_src #+end_src
#+begin_src matlab :tangle no :exports results :results file none #+begin_src matlab :tangle no :exports results :results file none
@ -2642,7 +2658,7 @@ hold off;
xlabel('$D_y$ [$\mu$m]'); ylabel('$D_z$ [$\mu$m]'); xlabel('$D_y$ [$\mu$m]'); ylabel('$D_z$ [$\mu$m]');
axis equal axis equal
xlim([-200, 200]); ylim([-100, 100]); xlim([-200, 200]); ylim([-100, 100]);
xticks([-200:100:200]); yticks([-100:50:100]); xticks([-200:50:200]); yticks([-100:50:100]);
#+end_src #+end_src
#+begin_src matlab :tangle no :exports results :results file none #+begin_src matlab :tangle no :exports results :results file none

Binary file not shown.