Update Stewart Platform figures
This commit is contained in:
		
							
								
								
									
										73
									
								
								index.org
									
									
									
									
									
								
							
							
						
						
									
										73
									
								
								index.org
									
									
									
									
									
								
							@@ -945,7 +945,7 @@ The real approximation is computed as follows:
 | 
			
		||||
|  220.6 | -220.6 |  220.6 | -220.6 | 220.6 | -220.6 |
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Please not that the plant $G$ at $\omega_c$ is already an almost real matrix.
 | 
			
		||||
Note that the plant $G$ at $\omega_c$ is already an almost real matrix.
 | 
			
		||||
This can be seen on the Bode plots where the phase is close to 1.
 | 
			
		||||
This can be verified below where only the real value of $G(\omega_c)$ is shown
 | 
			
		||||
 | 
			
		||||
@@ -1031,10 +1031,11 @@ Gershgorin Radii for the decoupled plant using the Jacobian:
 | 
			
		||||
  hold off;
 | 
			
		||||
  xlabel('Frequency (Hz)'); ylabel('Gershgorin Radii')
 | 
			
		||||
  legend('location', 'northeast');
 | 
			
		||||
  ylim([1e-3, 1e3]);
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
#+begin_src matlab :tangle no :exports results :results file replace
 | 
			
		||||
  exportFig('figs/simscape_model_gershgorin_radii.pdf', 'width', 'full', 'height', 'full');
 | 
			
		||||
  exportFig('figs/simscape_model_gershgorin_radii.pdf', 'eps', true, 'width', 'wide', 'height', 'tall');
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
#+name: fig:simscape_model_gershgorin_radii
 | 
			
		||||
@@ -1066,11 +1067,12 @@ Let's see the bode plot of the decoupled plant $G_d(s)$.
 | 
			
		||||
  hold off;
 | 
			
		||||
  set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
 | 
			
		||||
  ylabel('Magnitude'); xlabel('Frequency [Hz]');
 | 
			
		||||
  legend('location', 'southeast');
 | 
			
		||||
  legend('location', 'northwest');
 | 
			
		||||
  ylim([1e-3, 1e5]);
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
#+begin_src matlab :tangle no :exports results :results file replace
 | 
			
		||||
  exportFig('figs/simscape_model_decoupled_plant_svd.pdf', 'width', 'full', 'height', 'full');
 | 
			
		||||
  exportFig('figs/simscape_model_decoupled_plant_svd.pdf', 'eps', true, 'width', 'wide', 'height', 'tall');
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
#+name: fig:simscape_model_decoupled_plant_svd
 | 
			
		||||
@@ -1096,11 +1098,12 @@ Let's see the bode plot of the decoupled plant $G_d(s)$.
 | 
			
		||||
  hold off;
 | 
			
		||||
  set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
 | 
			
		||||
  ylabel('Magnitude'); xlabel('Frequency [Hz]');
 | 
			
		||||
  legend('location', 'southeast');
 | 
			
		||||
  legend('location', 'northwest');
 | 
			
		||||
  ylim([1e-3, 1e6]);
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
#+begin_src matlab :tangle no :exports results :results file replace
 | 
			
		||||
  exportFig('figs/simscape_model_decoupled_plant_jacobian.pdf', 'width', 'full', 'height', 'full');
 | 
			
		||||
  exportFig('figs/simscape_model_decoupled_plant_jacobian.pdf', 'eps', true, 'width', 'wide', 'height', 'tall');
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
#+name: fig:simscape_model_decoupled_plant_jacobian
 | 
			
		||||
@@ -1212,71 +1215,73 @@ Let's first verify the stability of the closed-loop systems:
 | 
			
		||||
The obtained transmissibility in Open-loop, for the centralized control as well as for the SVD control are shown in Figure [[fig:stewart_platform_simscape_cl_transmissibility]].
 | 
			
		||||
 | 
			
		||||
#+begin_src matlab :exports results
 | 
			
		||||
  freqs = logspace(-3, 3, 1000);
 | 
			
		||||
  freqs = logspace(-2, 2, 1000);
 | 
			
		||||
 | 
			
		||||
  figure
 | 
			
		||||
  figure;
 | 
			
		||||
  tiledlayout(2, 2, 'TileSpacing', 'None', 'Padding', 'None');
 | 
			
		||||
 | 
			
		||||
  ax1 = subplot(2, 3, 1);
 | 
			
		||||
  ax1 = nexttile;
 | 
			
		||||
  hold on;
 | 
			
		||||
  plot(freqs, abs(squeeze(freqresp(G(    'Ax', 'Dwx')/s^2, freqs, 'Hz'))), 'DisplayName', 'Open-Loop');
 | 
			
		||||
  plot(freqs, abs(squeeze(freqresp(G_cen('Ax', 'Dwx')/s^2, freqs, 'Hz'))), 'DisplayName', 'Centralized');
 | 
			
		||||
  plot(freqs, abs(squeeze(freqresp(G_svd('Ax', 'Dwx')/s^2, freqs, 'Hz'))), 'DisplayName', 'SVD');
 | 
			
		||||
  hold off;
 | 
			
		||||
  set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
 | 
			
		||||
  ylabel('Transmissibility - $D_x/D_{w,x}$');  xlabel('Frequency [Hz]');
 | 
			
		||||
  ylabel('$D_x/D_{w,x}$, $D_y/D_{w, y}$'); set(gca, 'XTickLabel',[]);
 | 
			
		||||
  legend('location', 'southwest');
 | 
			
		||||
 | 
			
		||||
  ax2 = subplot(2, 3, 2);
 | 
			
		||||
  hold on;
 | 
			
		||||
  plot(freqs, abs(squeeze(freqresp(G(    'Ay', 'Dwy')/s^2, freqs, 'Hz'))));
 | 
			
		||||
  plot(freqs, abs(squeeze(freqresp(G_cen('Ay', 'Dwy')/s^2, freqs, 'Hz'))));
 | 
			
		||||
  plot(freqs, abs(squeeze(freqresp(G_svd('Ay', 'Dwy')/s^2, freqs, 'Hz'))));
 | 
			
		||||
  hold off;
 | 
			
		||||
  set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
 | 
			
		||||
  ylabel('Transmissibility - $D_y/D_{w,y}$');  xlabel('Frequency [Hz]');
 | 
			
		||||
  % ax2 = nexttile;
 | 
			
		||||
  % hold on;
 | 
			
		||||
  % plot(freqs, abs(squeeze(freqresp(G(    'Ay', 'Dwy')/s^2, freqs, 'Hz'))));
 | 
			
		||||
  % plot(freqs, abs(squeeze(freqresp(G_cen('Ay', 'Dwy')/s^2, freqs, 'Hz'))));
 | 
			
		||||
  % plot(freqs, abs(squeeze(freqresp(G_svd('Ay', 'Dwy')/s^2, freqs, 'Hz'))));
 | 
			
		||||
  % hold off;
 | 
			
		||||
  % set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
 | 
			
		||||
  % ylabel('Transmissibility - $D_y/D_{w,y}$');  xlabel('Frequency [Hz]');
 | 
			
		||||
 | 
			
		||||
  ax3 = subplot(2, 3, 3);
 | 
			
		||||
  ax3 = nexttile;
 | 
			
		||||
  hold on;
 | 
			
		||||
  plot(freqs, abs(squeeze(freqresp(G(    'Az', 'Dwz')/s^2, freqs, 'Hz'))));
 | 
			
		||||
  plot(freqs, abs(squeeze(freqresp(G_cen('Az', 'Dwz')/s^2, freqs, 'Hz'))));
 | 
			
		||||
  plot(freqs, abs(squeeze(freqresp(G_svd('Az', 'Dwz')/s^2, freqs, 'Hz'))));
 | 
			
		||||
  hold off;
 | 
			
		||||
  set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
 | 
			
		||||
  ylabel('Transmissibility - $D_z/D_{w,z}$');  xlabel('Frequency [Hz]');
 | 
			
		||||
  ylabel('$D_z/D_{w,z}$'); set(gca, 'XTickLabel',[]);
 | 
			
		||||
 | 
			
		||||
  ax4 = subplot(2, 3, 4);
 | 
			
		||||
  ax4 = nexttile;
 | 
			
		||||
  hold on;
 | 
			
		||||
  plot(freqs, abs(squeeze(freqresp(G(    'Arx', 'Rwx')/s^2, freqs, 'Hz'))));
 | 
			
		||||
  plot(freqs, abs(squeeze(freqresp(G_cen('Arx', 'Rwx')/s^2, freqs, 'Hz'))));
 | 
			
		||||
  plot(freqs, abs(squeeze(freqresp(G_svd('Arx', 'Rwx')/s^2, freqs, 'Hz'))));
 | 
			
		||||
  hold off;
 | 
			
		||||
  set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
 | 
			
		||||
  ylabel('Transmissibility - $R_x/R_{w,x}$');  xlabel('Frequency [Hz]');
 | 
			
		||||
  ylabel('$R_x/R_{w,x}$, $R_y/R_{w,y}$');  xlabel('Frequency [Hz]');
 | 
			
		||||
 | 
			
		||||
  ax5 = subplot(2, 3, 5);
 | 
			
		||||
  hold on;
 | 
			
		||||
  plot(freqs, abs(squeeze(freqresp(G(    'Ary', 'Rwy')/s^2, freqs, 'Hz'))));
 | 
			
		||||
  plot(freqs, abs(squeeze(freqresp(G_cen('Ary', 'Rwy')/s^2, freqs, 'Hz'))));
 | 
			
		||||
  plot(freqs, abs(squeeze(freqresp(G_svd('Ary', 'Rwy')/s^2, freqs, 'Hz'))));
 | 
			
		||||
  hold off;
 | 
			
		||||
  set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
 | 
			
		||||
  ylabel('Transmissibility - $R_y/R_{w,y}$');  xlabel('Frequency [Hz]');
 | 
			
		||||
  % ax5 = nexttile;
 | 
			
		||||
  % hold on;
 | 
			
		||||
  % plot(freqs, abs(squeeze(freqresp(G(    'Ary', 'Rwy')/s^2, freqs, 'Hz'))));
 | 
			
		||||
  % plot(freqs, abs(squeeze(freqresp(G_cen('Ary', 'Rwy')/s^2, freqs, 'Hz'))));
 | 
			
		||||
  % plot(freqs, abs(squeeze(freqresp(G_svd('Ary', 'Rwy')/s^2, freqs, 'Hz'))));
 | 
			
		||||
  % hold off;
 | 
			
		||||
  % set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
 | 
			
		||||
  % ylabel('Transmissibility - $R_y/R_{w,y}$');  xlabel('Frequency [Hz]');
 | 
			
		||||
 | 
			
		||||
  ax6 = subplot(2, 3, 6);
 | 
			
		||||
  ax6 = nexttile;
 | 
			
		||||
  hold on;
 | 
			
		||||
  plot(freqs, abs(squeeze(freqresp(G(    'Arz', 'Rwz')/s^2, freqs, 'Hz'))));
 | 
			
		||||
  plot(freqs, abs(squeeze(freqresp(G_cen('Arz', 'Rwz')/s^2, freqs, 'Hz'))));
 | 
			
		||||
  plot(freqs, abs(squeeze(freqresp(G_svd('Arz', 'Rwz')/s^2, freqs, 'Hz'))));
 | 
			
		||||
  hold off;
 | 
			
		||||
  set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
 | 
			
		||||
  ylabel('Transmissibility - $R_z/R_{w,z}$');  xlabel('Frequency [Hz]');
 | 
			
		||||
  ylabel('$R_z/R_{w,z}$');  xlabel('Frequency [Hz]');
 | 
			
		||||
 | 
			
		||||
  linkaxes([ax1,ax2,ax3,ax4,ax5,ax6],'x');
 | 
			
		||||
  linkaxes([ax1,ax2,ax3,ax4,ax5,ax6],'xy');
 | 
			
		||||
  xlim([freqs(1), freqs(end)]);
 | 
			
		||||
  ylim([1e-5, 1e2]);
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
#+begin_src matlab :tangle no :exports results :results file replace
 | 
			
		||||
  exportFig('figs/stewart_platform_simscape_cl_transmissibility.pdf', 'width', 1600, 'height', 'full');
 | 
			
		||||
  exportFig('figs/stewart_platform_simscape_cl_transmissibility.pdf', 'eps', true, 'width', 'wide', 'height', 'tall');
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
#+name: fig:stewart_platform_simscape_cl_transmissibility
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user