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

View File

@ -3,7 +3,7 @@
1 0 obj
<<
/Producer (Apache FOP Version 2.4.0-SNAPSHOT: PDFDocumentGraphics2D)
/CreationDate (D:20250217164952+01'00')
/CreationDate (D:20250217224351+01'00')
>>
endobj
2 0 obj
@ -2143,7 +2143,7 @@ trailer
<<
/Root 192 0 R
/Info 1 0 R
/ID [<0DBF4BE48E6A60B24F0F8845B9514DDD> <0DBF4BE48E6A60B24F0F8845B9514DDD>]
/ID [<DD4AAE46E108294B4ECC637DAD1A7440> <DD4AAE46E108294B4ECC637DAD1A7440>]
/Size 193
>>
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
<<
/Producer (Apache FOP Version 2.4.0-SNAPSHOT: PDFDocumentGraphics2D)
/CreationDate (D:20250217165504+01'00')
/CreationDate (D:20250217224119+01'00')
>>
endobj
2 0 obj
@ -2306,7 +2306,7 @@ trailer
<<
/Root 178 0 R
/Info 1 0 R
/ID [<3630E01169C70E25D654EEE5283C8ABD> <3630E01169C70E25D654EEE5283C8ABD>]
/ID [<6133A65D51003F02A7EFEFAC76B544CC> <6133A65D51003F02A7EFEFAC76B544CC>]
/Size 179
>>
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
<<
/Producer (Apache FOP Version 2.4.0-SNAPSHOT: PDFDocumentGraphics2D)
/CreationDate (D:20250217180103+01'00')
/CreationDate (D:20250217224912+01'00')
>>
endobj
2 0 obj
@ -2179,7 +2179,7 @@ trailer
<<
/Root 215 0 R
/Info 1 0 R
/ID [<A3BD0F36D1EF53B5EB61AEF8934A94B3> <A3BD0F36D1EF53B5EB61AEF8934A94B3>]
/ID [<F83F7D266D06EAE0649EEB142832B885> <F83F7D266D06EAE0649EEB142832B885>]
/Size 216
>>
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*.
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
** 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;
for i = 1:5
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');
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');
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')
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')
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');
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');
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$')
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
ylabel('Amplitude [N/N]'); set(gca, 'XTickLabel',[]);
ylim([1e-6, 1e2]);
leg = legend('location', 'northwest', 'FontSize', 8, 'NumColumns', 1);
ylim([1e-4, 1e2]);
leg = legend('location', 'southeast', 'FontSize', 8, 'NumColumns', 1);
leg.ItemTokenSize(1) = 15;
ax2 = nexttile;
hold on;
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_m1_Rz(i,i), freqs, 'Hz'))), 'color', colors(2,:));
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_m25_Rz(i,i), freqs, 'Hz'))), 'color', colors(2,:));
end
hold off;
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
%% Verify that parallel stiffness permits to have a stable plant
Kiff_pure_int = -200/s*eye(6);
isstable(feedback(G_iff_m1_Rz, Kiff_pure_int, 1))
isstable(feedback(G_iff_m1_Rz_no_kp, Kiff_pure_int, 1))
isstable(feedback(G_iff_m25_Rz, Kiff_pure_int, 1))
isstable(feedback(G_iff_m25_Rz_no_kp, Kiff_pure_int, 1))
#+end_src
#+begin_src matlab
@ -1263,19 +1279,19 @@ tiledlayout(1, 1, 'TileSpacing', 'compact', 'Padding', 'None');
nexttile();
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$');
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');
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,:), ...
'HandleVisibility', 'off');
end
% 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', ...
'DisplayName', '$g_{opt}$');
@ -1513,26 +1529,26 @@ tiledlayout(3, 1, 'TileSpacing', 'Compact', 'Padding', 'None');
ax1 = nexttile([2,1]);
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$')
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')
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$')
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$')
for i = 1:5
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');
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');
end
end
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');
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');
end
hold off;
@ -1545,8 +1561,8 @@ leg.ItemTokenSize(1) = 15;
ax2 = nexttile;
hold on;
for i = 1:6
plot(f, 180/pi*unwrap(angle(squeeze(freqresp(G_m1(i,i), f, '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(i,i), freqs, 'Hz')))), 'color', colors(1,:));
plot(freqs, 180/pi*unwrap(angle(squeeze(freqresp(G_m1_Rz(i,i), freqs, 'Hz')))), 'color', colors(2,:));
end
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
@ -1555,7 +1571,7 @@ ylim([-200, 20]);
yticks([-180:45:180]);
linkaxes([ax1,ax2],'x');
xlim([f(1), f(end)]);
xlim([freqs(1), freqs(end)]);
#+end_src
#+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]');
axis equal
xlim([-200, 200]); ylim([-100, 100]);
xticks([-200:100:200]); yticks([-100:50:100]);
xticks([-200:50:200]); yticks([-100:50:100]);
#+end_src
#+begin_src matlab :tangle no :exports results :results file none

Binary file not shown.