diff --git a/docs/centrifugal_forces.html b/docs/centrifugal_forces.html index f1ad876..7b55930 100644 --- a/docs/centrifugal_forces.html +++ b/docs/centrifugal_forces.html @@ -1,11 +1,10 @@ - - + Centrifugal Forces @@ -98,7 +97,7 @@ w_heavy = 2*pi/60; % rotational speed [rad/s] Finally, we consider a mass eccentricity of \(10\,mm\).

-
R = 0.1; % Excentricity [m]
+
R = 0.01; % Excentricity [m]
 
@@ -128,12 +127,12 @@ From the formula \(F_c = m \omega^2 r\), we obtain the values shown below. light -63.2 +6.32 heavy -0.1 +0.01 @@ -164,13 +163,13 @@ We plot the maximum rotation speed as a function of the mass for different maxim

-From a specified maximum allowed centrifugal force (here set to \(100\,[N]\)), the maximum rotation speed as a function of the sample’s mass is shown in Figure 3. +From a specified maximum allowed centrifugal force (here set to \(10\,[N]\)), the maximum rotation speed as a function of the sample’s mass is shown in Figure 3.

-
F_max = 100; % Maximum accepted centrifugal forces [N]
+
F_max = 10; % Maximum accepted centrifugal forces [N]
 
-R = 0.1;
+R = 0.01;
 
 M_sample = 0:1:100;
 M_reflector = 15;
@@ -188,7 +187,7 @@ M_reflector = 15;
 

Author: Dehaeze Thomas

-

Created: 2020-05-05 mar. 10:34

+

Created: 2020-05-07 jeu. 14:05

diff --git a/docs/figs/opt_stiffness_payload_freq_fz_dz.pdf b/docs/figs/opt_stiffness_payload_freq_fz_dz.pdf index 54820b8..0b77983 100644 Binary files a/docs/figs/opt_stiffness_payload_freq_fz_dz.pdf and b/docs/figs/opt_stiffness_payload_freq_fz_dz.pdf differ diff --git a/docs/figs/opt_stiffness_payload_freq_fz_dz.png b/docs/figs/opt_stiffness_payload_freq_fz_dz.png index b83d069..f60dd2e 100644 Binary files a/docs/figs/opt_stiffness_payload_freq_fz_dz.png and b/docs/figs/opt_stiffness_payload_freq_fz_dz.png differ diff --git a/docs/figs/opt_stiffness_payload_mass_fz_dz.pdf b/docs/figs/opt_stiffness_payload_mass_fz_dz.pdf index 652ef40..1b719bd 100644 Binary files a/docs/figs/opt_stiffness_payload_mass_fz_dz.pdf and b/docs/figs/opt_stiffness_payload_mass_fz_dz.pdf differ diff --git a/docs/figs/opt_stiffness_payload_mass_fz_dz.png b/docs/figs/opt_stiffness_payload_mass_fz_dz.png index 03777f6..fcf194f 100644 Binary files a/docs/figs/opt_stiffness_payload_mass_fz_dz.png and b/docs/figs/opt_stiffness_payload_mass_fz_dz.png differ diff --git a/docs/optimal_stiffness_control.html b/docs/optimal_stiffness_control.html index 6dbdbb3..0298a7a 100644 --- a/docs/optimal_stiffness_control.html +++ b/docs/optimal_stiffness_control.html @@ -1,10 +1,9 @@ - - + Control of the NASS with optimal stiffness @@ -42,7 +41,7 @@
  • 1.3. Controller Design
  • 1.4. Effect of the Low Authority Control on the Primary Plant
  • 1.5. Effect of the Low Authority Control on the Sensibility to Disturbances
  • -
  • 1.6. Conclusion
  • +
  • 1.6. Conclusion
  • 2. Primary Control in the leg space @@ -51,23 +50,23 @@
  • 2.2. Control in the leg space
  • 2.3. Sensibility to Disturbances and Noise Budget
  • 2.4. Simulations of Tomography Experiment
  • -
  • 2.5. Results
  • +
  • 2.5. Results
  • 2.6. Actuator Stroke and Forces
  • -
  • 2.7. Conclusion
  • +
  • 2.7. Conclusion
  • 3. Further More complex simulations @@ -80,8 +79,8 @@
  • 4.2.1. Stability
  • -
  • 4.3. Simulation
  • -
  • 4.4. Conclusion
  • +
  • 4.3. Simulation
  • +
  • 4.4. Conclusion
  • @@ -325,8 +324,8 @@ Decentralized Direct Velocity Feedback is shown to increase the effect of stages -
    -

    1.6 Conclusion

    +
    +

    1.6 Conclusion

    @@ -513,8 +512,8 @@ And we run the simulation for all three payload Masses.

    -
    -

    2.5 Results

    +
    +

    2.5 Results

    Let’s now see how this controller performs. @@ -573,8 +572,8 @@ Finally, the time domain position error signals are shown in Figure -

    2.7 Conclusion

    +
    +

    2.7 Conclusion

    @@ -594,8 +593,8 @@ Finally, the time domain position error signals are shown in Figure 3.1 Simulation with Micro-Hexapod Offset

    -
    -

    3.1.1 Simulation

    +
    +

    3.1.1 Simulation

    The micro-hexapod is inducing a 10mm offset of the sample center of mass with the rotation axis. @@ -623,8 +622,8 @@ sim('nass_model');

    -
    -

    3.1.2 Results

    +
    +

    3.1.2 Results

    @@ -651,15 +650,15 @@ sim('nass_model');

    3.2 Simultaneous Translation scans and Spindle’s rotation

    -
    -

    3.2.1 Simulation

    +
    +

    3.2.1 Simulation

    A simulation is now performed with translation scans and spindle rotation at the same time.

    -The sample has a mass one 1kg, the spindle rotation speed is 60rpm and the translation scans have a period of 4s and a triangular shape. +The sample has a mass of 1kg, the spindle rotation speed is 60rpm and the translation scans have a period of 4s and a triangular shape.

    @@ -675,8 +674,8 @@ initializeReferences('Rz_type', 'rotating', 'Rz_period', 1, ...
    -
    -

    3.2.2 Results

    +
    +

    3.2.2 Results

    @@ -779,11 +778,11 @@ end
    -
    -

    4.3 Simulation

    +
    +

    4.3 Simulation

    -
    -

    4.4 Conclusion

    +
    +

    4.4 Conclusion

    @@ -797,7 +796,7 @@ end

    Author: Dehaeze Thomas

    -

    Created: 2020-05-05 mar. 10:34

    +

    Created: 2020-05-20 mer. 15:49

    diff --git a/docs/stewart_platform.html b/docs/stewart_platform.html index 8fe526e..a7cfb2a 100644 --- a/docs/stewart_platform.html +++ b/docs/stewart_platform.html @@ -1,10 +1,9 @@ - - + Stewart Platform - Simscape Model @@ -37,85 +36,85 @@
    -
    -

    Documentation

    -
    +
    +

    Documentation

    +
    - -
    -

    Function description

    -
    +
    +

    Function description

    +
    -
    -

    Documentation

    -
    +
    +

    Documentation

    +
    - -
    -

    Function description

    -
    +
    +

    Function description

    +
    -
    -

    Optional Parameters

    -
    +
    +

    Optional Parameters

    +
    arguments
         stewart
    @@ -414,9 +413,9 @@ FO_A = MO_B + FO_M; % Position of {A} with respect to {F} [m]
     
    -
    -

    Populate the stewart structure

    -
    +
    +

    Populate the stewart structure

    +
    stewart.geometry.H      = H;
     stewart.geometry.FO_M   = FO_M;
    @@ -440,9 +439,9 @@ This Matlab function is accessible 
    -

    Documentation

    -
    + -
    -

    Function description

    -
    +
    +

    Function description

    +
    function [stewart] = generateGeneralConfiguration(stewart, args)
     % generateGeneralConfiguration - Generate a Very General Configuration
    @@ -484,9 +483,9 @@ The radius of the circles can be chosen as well as the angles where the joints a
     
    -
    -

    Optional Parameters

    -
    +
    +

    Optional Parameters

    +
    arguments
         stewart
    @@ -502,9 +501,9 @@ end
     
    -
    -

    Compute the pose

    -
    +
    +

    Compute the pose

    +
    Fa = zeros(3,6);
     Mb = zeros(3,6);
    @@ -521,9 +520,9 @@ end
     
    -
    -

    Populate the stewart structure

    -
    +
    +

    Populate the stewart structure

    +
    stewart.platform_F.Fa = Fa;
     stewart.platform_M.Mb = Mb;
    @@ -545,9 +544,9 @@ This Matlab function is accessible here
     

    -
    -

    Documentation

    -
    +
    +

    Documentation

    +

    stewart-struts.png @@ -557,9 +556,9 @@ This Matlab function is accessible here

    -
    -

    Function description

    -
    +
    +

    Function description

    +
    -
    -

    Check the stewart structure elements

    -
    +
    +

    Check the stewart structure elements

    +
    assert(isfield(stewart.platform_F, 'Fa'),   'stewart.platform_F should have attribute Fa')
     Fa = stewart.platform_F.Fa;
    @@ -665,9 +664,9 @@ end
     
    -
    -

    Populate the stewart structure

    -
    +
    +

    Populate the stewart structure

    +
    -
    -

    Function description

    -
    +
    +

    Function description

    +
    -
    -

    Optional Parameters

    -
    +
    +

    Optional Parameters

    +
    arguments
         stewart
    @@ -750,9 +749,9 @@ end
     
    -
    -

    Populate the stewart structure

    -
    +
    +

    Populate the stewart structure

    +
    stewart.actuators.Leq = dLi;
     
    @@ -773,9 +772,9 @@ This Matlab function is accessible -

    Function description

    -
    +
    +

    Function description

    +
    function [stewart] = initializeCylindricalPlatforms(stewart, args)
     % initializeCylindricalPlatforms - Initialize the geometry of the Fixed and Mobile Platforms
    @@ -809,9 +808,9 @@ This Matlab function is accessible 
    -

    Optional Parameters

    -
    +
    +

    Optional Parameters

    +
    arguments
         stewart
    @@ -846,9 +845,9 @@ end
     
    -
    -

    Populate the stewart structure

    -
    +
    +

    Populate the stewart structure

    +
    stewart.platform_F.type = 1;
     
    @@ -884,9 +883,9 @@ This Matlab function is accessible 
    -

    Function description

    -
    +
    +

    Function description

    +
    function [stewart] = initializeCylindricalStruts(stewart, args)
     % initializeCylindricalStruts - Define the mass and moment of inertia of cylindrical struts
    @@ -919,9 +918,9 @@ This Matlab function is accessible 
    -

    Optional Parameters

    -
    +
    +

    Optional Parameters

    +
    arguments
         stewart
    @@ -969,9 +968,9 @@ end
     
    -
    -

    Populate the stewart structure

    -
    +
    +

    Populate the stewart structure

    +
    -
    -

    Documentation

    -
    +
    +

    Documentation

    +

    piezoelectric_stack.jpg @@ -1038,9 +1037,9 @@ A simplistic model of such amplified actuator is shown in Figure -

    Function description

    -
    +
    +

    Function description

    +
    function [stewart] = initializeStrutDynamics(stewart, args)
     % initializeStrutDynamics - Add Stiffness and Damping properties of each strut
    @@ -1062,9 +1061,9 @@ A simplistic model of such amplified actuator is shown in Figure 
    -

    Optional Parameters

    -
    +
    +

    Optional Parameters

    +
    arguments
         stewart
    @@ -1102,9 +1101,9 @@ This Matlab function is accessible 
    -

    Documentation

    -
    +
    +

    Documentation

    +

    An amplified piezoelectric actuator is shown in Figure 7.

    @@ -1137,9 +1136,9 @@ A simplistic model of such amplified actuator is shown in Figure -

    Function description

    -
    +
    +

    Function description

    +
    function [stewart] = initializeAmplifiedStrutDynamics(stewart, args)
     % initializeAmplifiedStrutDynamics - Add Stiffness and Damping properties of each strut
    @@ -1167,9 +1166,9 @@ A simplistic model of such amplified actuator is shown in Figure 
    -

    Optional Parameters

    -
    +
    +

    Optional Parameters

    +
    arguments
         stewart
    @@ -1194,9 +1193,9 @@ C = args.Ca + args.Cr;
     
    -
    -

    Populate the stewart structure

    -
    +
    +

    Populate the stewart structure

    +
    -
    -

    Function description

    -
    +
    +

    Function description

    +
    -
    -

    Optional Parameters

    -
    +
    +

    Optional Parameters

    +
    arguments
         stewart
    @@ -1477,9 +1476,9 @@ Note that there is trade-off between:
     
    -
    -

    Function description

    -
    +
    +

    Function description

    +
    function [stewart] = initializeInertialSensor(stewart, args)
     % initializeInertialSensor - Initialize the inertial sensor in each strut
    @@ -1505,9 +1504,9 @@ Note that there is trade-off between:
     
    -
    -

    Optional Parameters

    -
    +
    +

    Optional Parameters

    +
    arguments
         stewart
    @@ -1548,9 +1547,9 @@ end
     
    -
    -

    Populate the stewart structure

    -
    +
    +

    Populate the stewart structure

    +
    stewart.sensors.inertial = sensor;
     
    @@ -1571,9 +1570,9 @@ This Matlab function is accessible here
    -
    -

    Function description

    -
    +
    +

    Function description

    +
    -
    -

    Optional Parameters

    -
    +
    +

    Optional Parameters

    +
    arguments
         stewart
    @@ -1625,9 +1624,9 @@ end
     
    -
    -

    Check the stewart structure elements

    -
    +
    +

    Check the stewart structure elements

    +
    -
    -

    Function description

    -
    +
    +

    Function description

    +
    -
    -

    Optional Parameters

    -
    +
    +

    Optional Parameters

    +
    -
    -

    Function description

    -
    +
    +

    Function description

    +
    -
    -

    Documentation

    -
    +
    +

    Documentation

    +
    -
    -

    Optional Parameters

    -
    +
    +

    Optional Parameters

    +
    arguments
         stewart
    @@ -2189,9 +2188,9 @@ end
     
    -
    -

    Check the stewart structure elements

    -
    +
    +

    Check the stewart structure elements

    +
    assert(isfield(stewart.geometry, 'H'),   'stewart.geometry should have attribute H')
     H = stewart.geometry.H;
    @@ -2226,9 +2225,9 @@ CCm = [Cc(:,2), Cc(:,2), Cc(:,4), Cc(:,4), Cc(:,6), Cc(:,6)]; % CCm(:,i) corresp
     
    -
    -

    Compute the pose

    -
    +
    +

    Compute the pose

    +

    We can compute the vector of each leg \({}^{C}\hat{\bm{s}}_{i}\) (unit vector from \({}^{C}C_{f}\) to \({}^{C}C_{m}\)).

    @@ -2248,9 +2247,9 @@ Mb = CCf + [0; 0; args.FOc-H] + ((H-args.MHb-(args.FOc-args.Hc/2))./CSi(3,:)).*C
    -
    -

    Populate the stewart structure

    -
    +
    +

    Populate the stewart structure

    +
    stewart.platform_F.Fa = Fa;
     stewart.platform_M.Mb = Mb;
    @@ -2272,9 +2271,9 @@ This Matlab function is accessible here.
     

    -
    -

    Function description

    -
    +
    +

    Function description

    +
    -
    -

    Check the stewart structure elements

    -
    +
    +

    Check the stewart structure elements

    +
    assert(isfield(stewart.geometry, 'As'),   'stewart.geometry should have attribute As')
     As = stewart.geometry.As;
    @@ -2345,9 +2344,9 @@ Ki = stewart.actuators.K;
     
    -
    -

    Populate the stewart structure

    -
    +
    +

    Populate the stewart structure

    +
    stewart.kinematics.J = J;
     stewart.kinematics.K = K;
    @@ -2407,9 +2406,9 @@ Otherwise, when the limbs’ lengths derived yield complex numbers, then the
     
    -
    -

    Function description

    -
    +
    +

    Function description

    +
    function [Li, dLi] = inverseKinematics(stewart, args)
     % inverseKinematics - Compute the needed length of each strut to have the wanted position and orientation of {B} with respect to {A}
    @@ -2433,9 +2432,9 @@ Otherwise, when the limbs’ lengths derived yield complex numbers, then the
     
    -
    -

    Optional Parameters

    -
    +
    +

    Optional Parameters

    +
    arguments
         stewart
    @@ -2447,9 +2446,9 @@ end
     
    -
    -

    Check the stewart structure elements

    -
    +
    +

    Check the stewart structure elements

    +
    assert(isfield(stewart.geometry, 'Aa'),   'stewart.geometry should have attribute Aa')
     Aa = stewart.geometry.Aa;
    @@ -2493,9 +2492,9 @@ This Matlab function is accessible he
     

    -
    -

    Function description

    -
    +
    +

    Function description

    +
    -
    -

    Optional Parameters

    -
    +
    +

    Optional Parameters

    +
    arguments
         stewart
    @@ -2530,9 +2529,9 @@ end
     
    -
    -

    Check the stewart structure elements

    -
    +
    +

    Check the stewart structure elements

    +
    -
    -

    1.1 Initialization

    +
    +

    1.1 Initialization

    We initialize all the stages with the default parameters. @@ -386,8 +385,8 @@ When the nano-hexapod is stiff (\(k>10^7\ [N/m]\)), the compliance of the micro-

    -
    -

    3.1 Initialization

    +

    Author: Dehaeze Thomas

    -

    Created: 2020-05-05 mar. 10:33

    +

    Created: 2020-05-20 mer. 15:49

    diff --git a/mat/conf_log.mat b/mat/conf_log.mat index cc8f767..7a32be6 100644 Binary files a/mat/conf_log.mat and b/mat/conf_log.mat differ diff --git a/mat/conf_simscape.mat b/mat/conf_simscape.mat index 1872d5b..93a7e7c 100644 Binary files a/mat/conf_simscape.mat and b/mat/conf_simscape.mat differ diff --git a/mat/controller.mat b/mat/controller.mat index 054dfde..56b15bb 100644 Binary files a/mat/controller.mat and b/mat/controller.mat differ diff --git a/mat/nass_disturbances.mat b/mat/nass_disturbances.mat index a1e6a09..027ebc7 100644 Binary files a/mat/nass_disturbances.mat and b/mat/nass_disturbances.mat differ diff --git a/mat/nass_references.mat b/mat/nass_references.mat index 2834853..d2694a0 100644 Binary files a/mat/nass_references.mat and b/mat/nass_references.mat differ diff --git a/mat/stages.mat b/mat/stages.mat index 74222bc..2660532 100644 Binary files a/mat/stages.mat and b/mat/stages.mat differ diff --git a/matlab/nano_hexapod_strut.slx b/matlab/nano_hexapod_strut.slx index d042bf4..86c1997 100644 Binary files a/matlab/nano_hexapod_strut.slx and b/matlab/nano_hexapod_strut.slx differ diff --git a/matlab/nass_model.slx b/matlab/nass_model.slx index 9a1233d..1425e47 100644 Binary files a/matlab/nass_model.slx and b/matlab/nass_model.slx differ diff --git a/org/amplified_piezoelectric_stack.org b/org/amplified_piezoelectric_stack.org index 16c97a6..8ef4a59 100644 --- a/org/amplified_piezoelectric_stack.org +++ b/org/amplified_piezoelectric_stack.org @@ -431,3 +431,21 @@ Identification #+caption: Root Locus for the two considered rotation speed. For the red curve, the system is unstable. #+RESULTS: [[file:figs/amplified_piezo_xy_rotating_unstable_root_locus.png]] + +* Stewart Platform with Amplified Actuators +** Matlab Init :noexport:ignore: +#+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name) + <> +#+end_src + +#+begin_src matlab :exports none :results silent :noweb yes + <> +#+end_src + +#+begin_src matlab :tangle no + simulinkproject('../'); +#+end_src + +#+begin_src matlab + open('nass_model.slx') +#+end_src diff --git a/org/optimal_stiffness_control.org b/org/optimal_stiffness_control.org index 8c2ba48..0477f61 100644 --- a/org/optimal_stiffness_control.org +++ b/org/optimal_stiffness_control.org @@ -13,11 +13,11 @@ ** Matlab Init :noexport:ignore: #+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name) -<> + <> #+end_src #+begin_src matlab :exports none :results silent :noweb yes -<> + <> #+end_src #+begin_src matlab :tangle no @@ -141,7 +141,7 @@ exportFig('figs/opt_stiff_dvf_plant.pdf', 'width', 'full', 'height', 'full') #+RESULTS: [[file:figs/opt_stiff_dvf_plant.png]] -#+begin_src matlab :exports none :post +#+begin_src matlab :exports none figure; gains = logspace(2, 5, 300); @@ -1561,7 +1561,7 @@ exportFig('figs/opt_stiff_hac_dvf_Dh_offset_dL.pdf', 'width', 'normal', 'height' *** Simulation A simulation is now performed with translation scans and spindle rotation at the same time. -The sample has a mass one 1kg, the spindle rotation speed is 60rpm and the translation scans have a period of 4s and a triangular shape. +The sample has a mass of 1kg, the spindle rotation speed is 60rpm and the translation scans have a period of 4s and a triangular shape. #+begin_src matlab initializeDisturbances(); diff --git a/org/simscape_subsystems.org b/org/simscape_subsystems.org index bf58ab1..79469dc 100644 --- a/org/simscape_subsystems.org +++ b/org/simscape_subsystems.org @@ -1279,7 +1279,13 @@ The =mirror= structure is saved. args.MR (1,1) double {mustBeNumeric, mustBePositive} = 90e-3 args.MTh (6,1) double {mustBeNumeric} = [-60+10, 60-10, 60+10, 180-10, 180+10, -60-10]*(pi/180) % initializeStrutDynamics - args.actuator char {mustBeMember(args.actuator,{'piezo', 'lorentz'})} = 'piezo' + args.actuator char {mustBeMember(args.actuator,{'piezo', 'lorentz', 'amplified'})} = 'piezo' + args.ki (1,1) double {mustBeNumeric} = -1 + args.ke (1,1) double {mustBeNumeric} = -1 + args.ka (1,1) double {mustBeNumeric} = -1 + args.ci (1,1) double {mustBeNumeric} = -1 + args.ce (1,1) double {mustBeNumeric} = -1 + args.ca (1,1) double {mustBeNumeric} = -1 args.k (1,1) double {mustBeNumeric} = -1 args.c (1,1) double {mustBeNumeric} = -1 % initializeJointDynamics diff --git a/org/uncertainty_optimal_stiffness.org b/org/uncertainty_optimal_stiffness.org index 1102699..e51ff00 100644 --- a/org/uncertainty_optimal_stiffness.org +++ b/org/uncertainty_optimal_stiffness.org @@ -1281,14 +1281,13 @@ We can see two mass lines for the soft nano-hexapod (Figure [[fig:opt_stiffness_ ylabel('Phase [deg]'); xlabel('Frequency [Hz]'); ylim([-270, 90]); yticks([-360:90:360]); - legend('location', 'southwest'); linkaxes([ax1,ax2],'x'); xlim([freqs(1), freqs(end)]); i = 7; - ax1 = subplot(2, 2, 2); + ax3 = subplot(2, 2, 2); hold on; for j = 1:length(Fs) plot(freqs, abs(squeeze(freqresp(Gf_err{i,j}('Ez', 'Fz'), freqs, 'Hz'))), '-'); @@ -1298,7 +1297,7 @@ We can see two mass lines for the soft nano-hexapod (Figure [[fig:opt_stiffness_ ylabel('Amplitude [m/N]'); set(gca, 'XTickLabel',[]); title(sprintf('$k = %.0e$ [N/m]', Ks(i))) - ax2 = subplot(2, 2, 4); + ax4 = subplot(2, 2, 4); hold on; for j = 1:length(Fs) plot(freqs, 180/pi*unwrap(angle(squeeze(freqresp(Gf_err{i,j}('Ez', 'Fz'), freqs, 'Hz')))), '-', ... @@ -1311,17 +1310,19 @@ We can see two mass lines for the soft nano-hexapod (Figure [[fig:opt_stiffness_ yticks([-360:90:360]); legend('location', 'southwest'); - linkaxes([ax1,ax2],'x'); + linkaxes([ax3,ax4],'x'); xlim([freqs(1), freqs(end)]); + + linkaxes([ax1,ax3],'y'); #+end_src -#+header: :tangle no :exports results :results none :noweb yes -#+begin_src matlab :var filepath="figs/opt_stiffness_payload_freq_fz_dz.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png") -<> +#+begin_src matlab :tangle no :exports results :results file replace +exportFig('figs/opt_stiffness_payload_freq_fz_dz.pdf', 'width', 'full', 'height', 'tall'); #+end_src #+name: fig:opt_stiffness_payload_freq_fz_dz -#+caption: Dynamics from $\mathcal{F}_z$ to $\mathcal{X}_z$ for varying payload resonance frequency, both for a soft nano-hexapod and a stiff nano-hexapod ([[./figs/opt_stiffness_payload_freq_fz_dz.png][png]], [[./figs/opt_stiffness_payload_freq_fz_dz.pdf][pdf]]) +#+caption: Dynamics from $\mathcal{F}_z$ to $\mathcal{X}_z$ for varying payload resonance frequency, both for a soft nano-hexapod and a stiff nano-hexapod +#+RESULTS: [[file:figs/opt_stiffness_payload_freq_fz_dz.png]] #+begin_src matlab :exports none @@ -1419,7 +1420,7 @@ We can see here that for the soft nano-hexapod: i = 7; - ax1 = subplot(2, 2, 2); + ax3 = subplot(2, 2, 2); hold on; for j = 1:length(Ms) plot(freqs, abs(squeeze(freqresp(Gm_err{i,j}('Ez', 'Fz'), freqs, 'Hz'))), '-'); @@ -1429,7 +1430,7 @@ We can see here that for the soft nano-hexapod: ylabel('Amplitude [m/N]'); set(gca, 'XTickLabel',[]); title(sprintf('$k = %.0e$ [N/m]', Ks(i))) - ax2 = subplot(2, 2, 4); + ax4 = subplot(2, 2, 4); hold on; for j = 1:length(Ms) plot(freqs, 180/pi*unwrap(angle(squeeze(freqresp(Gm_err{i,j}('Ez', 'Fz'), freqs, 'Hz')))), '-', ... @@ -1442,17 +1443,19 @@ We can see here that for the soft nano-hexapod: yticks([-360:90:360]); legend('location', 'southwest'); - linkaxes([ax1,ax2],'x'); + linkaxes([ax3,ax4],'x'); xlim([freqs(1), freqs(end)]); + + linkaxes([ax1,ax3],'y'); #+end_src -#+header: :tangle no :exports results :results none :noweb yes -#+begin_src matlab :var filepath="figs/opt_stiffness_payload_mass_fz_dz.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png") -<> +#+begin_src matlab :tangle no :exports results :results file replace +exportFig('figs/opt_stiffness_payload_mass_fz_dz.pdf', 'width', 'full', 'height', 'tall'); #+end_src #+name: fig:opt_stiffness_payload_mass_fz_dz -#+caption: Dynamics from $\mathcal{F}_z$ to $\mathcal{X}_z$ for varying payload mass, both for a soft nano-hexapod and a stiff nano-hexapod ([[./figs/opt_stiffness_payload_mass_fz_dz.png][png]], [[./figs/opt_stiffness_payload_mass_fz_dz.pdf][pdf]]) +#+caption: Dynamics from $\mathcal{F}_z$ to $\mathcal{X}_z$ for varying payload mass, both for a soft nano-hexapod and a stiff nano-hexapod +#+RESULTS: [[file:figs/opt_stiffness_payload_mass_fz_dz.png]] #+begin_src matlab :exports none diff --git a/src/initializeStrutDynamics.m b/src/initializeStrutDynamics.m index 23f4947..296ecc1 100644 --- a/src/initializeStrutDynamics.m +++ b/src/initializeStrutDynamics.m @@ -20,7 +20,7 @@ arguments args.C (6,1) double {mustBeNumeric, mustBeNonnegative} = 2e1*ones(6,1) end -stewart.actuators.type = 1; +stewart.actuators.type = 3; stewart.actuators.K = args.K; stewart.actuators.C = args.C;